Ergebnis 1 bis 19 von 19

Thema: tl_iso_requestcache

  1. #1
    Contao-Fan
    Registriert seit
    05.09.2009.
    Beiträge
    452

    Standard tl_iso_requestcache

    Contao 4.13.15

    Hallo zusammen,

    unregelmäßig alle 2-4 Wochen quitiert unser Contao Isotop Shop den Dienst, weil der Isotope Aufrufcache bei 4GB liegt (irgendwelche Bots). Dann sind keine Logins mehr möglich. Wie kann ich diesen Cache jeden Tag löschen lassen?

    Danke!

  2. #2
    Contao-Fan
    Registriert seit
    24.02.2021.
    Beiträge
    984
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Man kann den Cache im Maintenance-Modul clearen.
    Vermutlich kannst du dir aber auch einen eigenen Cron (normal oder PoorMans) erstellen, der alle 24 Stunden diesen Cache cleared:
    https://github.com/isotope/core/blob...onfig.php#L443

  3. #3
    Contao-Fan
    Registriert seit
    05.09.2009.
    Beiträge
    452

    Standard

    Danke für Dein Feedback. Was bewirkt denn der Code, wenn ich ihn in die config schreibe? Der Kommentar lautet " Allow to delete the cache in maintenance module". Aber wann wird das dann gelöscht?

    Update: Frage hat sich erledigt
    Geändert von Ricks (30.10.2024 um 19:00 Uhr)

  4. #4
    Contao-Fan
    Registriert seit
    05.09.2009.
    Beiträge
    452

    Standard

    Ich habe versucht einen Cronjob anzulegen. Ich habe src/command/TruncateRequestCacheCommand.php angelegt

    Code:
    // src/Command/TruncateRequestCacheCommand.php
    
    namespace App\Command;
    
    use Contao\CoreBundle\Framework\ContaoFramework;
    use Isotope\Backend;
    use Symfony\Component\Console\Command\Command;
    use Symfony\Component\Console\Input\InputInterface;
    use Symfony\Component\Console\Output\OutputInterface;
    
    class TruncateRequestCacheCommand extends Command
    {
        protected static $defaultName = 'app:truncate-request-cache';
    
        private $framework;
    
        public function __construct(ContaoFramework $framework)
        {
            $this->framework = $framework;
            parent::__construct();
        }
    
        protected function configure()
        {
            $this
                ->setDescription('Truncate the Isotope request cache.');
        }
    
        protected function execute(InputInterface $input, OutputInterface $output): int
        {
            $this->framework->initialize();
            
            // Cache-Bereinigung ausführen
            Backend::truncateRequestCache();
    
            $output->writeln('Isotope request cache truncated successfully.');
    
            return Command::SUCCESS;
        }
    }
    dann in config/service.yaml angelegt:
    Code:
        App\Command\TruncateRequestCacheCommand:
            tags: ['console.command']
    und die composer.json ergänzt:

    Code:
        "autoload": {
            "psr-4": {
                "App\\": "src/"
            }
        },
    Danach hängt sich das System auf Wo liegt der Fehler?

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Zitat Zitat von Ricks Beitrag anzeigen
    Danach hängt sich das System auf Wo liegt der Fehler?
    Du musst den Fehler posten - sonst kann man ja nicht sagen wo der Fehler liegt.

    Btw. du hast jetzt aber ein Command gemacht, anstatt einen Cronjob.
    » sponsor me via GitHub or PayPal or Revolut

  6. #6
    Contao-Fan
    Registriert seit
    05.09.2009.
    Beiträge
    452

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Du musst den Fehler posten - sonst kann man ja nicht sagen wo der Fehler liegt.

    Btw. du hast jetzt aber ein Command gemacht, anstatt einen Cronjob.
    Ja, den Cronjob hätte ich dann noch angelegt als Scriptaufruf. Ich habe die Sache erst einmal gecancelt, alles neu angelegte gelöscht und warte nun darauf, dass das System wieder läuft. Contao-Manager hängt, Website off. Aber das wird schon wieder

    Danke dennoch!!

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Zitat Zitat von Ricks Beitrag anzeigen
    Ja, den Cronjob hätte ich dann noch angelegt als Scriptaufruf.
    Ich meinte einen Contao Cronjob: https://docs.contao.org/dev/framewor...ring-cron-jobs
    » sponsor me via GitHub or PayPal or Revolut

  8. #8
    Contao-Fan
    Registriert seit
    05.09.2009.
    Beiträge
    452

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Danke für den Link. Dazu eine Frage. Ich nutze Contao 4.13.15. Nach der o.g. Anleitung würde ich das mit der Variante PHP anlegen müssen, da ich PHP 7.4 nutze. Nun gibt es in meiner Installation aber nur eine config.yaml, keine config.php. Wie setze ich jetzt das hier um:
    Code:
    // contao/config/config.php
    $GLOBALS['TL_CRON']['hourly'][] = [\App\Cron\RequestCache::class, 'onHourly'];
    ?

    Danke!

    PS: Meine config.yaml sieht so aus:
    Code:
    contao:
        localconfig:
            logPeriod: 6289920000
    So soll der Cronjob aussehen:
    Code:
    // src/Cron/RequestCache.php
    namespace App\Cron;
    
    use Database;
    
    class RequestCache
    {
        public function onHourly(): void
        {
            // Nur den Request-Cache von Isotope leeren
            Database::getInstance()->execute("TRUNCATE TABLE tl_iso_requestcache");
        }
    }
    Geändert von Ricks (Gestern um 12:00 Uhr)

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Zitat Zitat von Ricks Beitrag anzeigen
    Danke für den Link. Dazu eine Frage. Ich nutze Contao 4.13.15. Nach der o.g. Anleitung würde ich das mit der Variante PHP anlegen müssen, da ich PHP 7.4 nutze.
    Nein, dann kannst du die Variante "Annotation" nutzen.
    » sponsor me via GitHub or PayPal or Revolut

  10. #10
    Contao-Fan
    Registriert seit
    05.09.2009.
    Beiträge
    452

    Standard

    Okay. Bevor mir wieder alles abraucht , spricht etwas gegen diesen Code:
    Code:
    // src/Cron/RequestCache.php
    namespace App\Cron;
    
    use Contao\CoreBundle\ServiceAnnotation\CronJob;
    use Contao\Database;
    
    /** 
     * @CronJob("hourly")
     */
    class RequestCache
    {
        public function __invoke()
        {
            // Leeren des Isotope-Request-Caches
            Database::getInstance()->execute("TRUNCATE TABLE tl_iso_requestcache");
        }
    }

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Ja, Database::getInstance() darfst du (in dieser Form) nicht nutzen. Injecte dir stattdessen die Datenbankverbindung (https://docs.contao.org/dev/referenc...ase-connection)
    » sponsor me via GitHub or PayPal or Revolut

  12. #12
    Contao-Fan
    Registriert seit
    05.09.2009.
    Beiträge
    452

    Standard

    So?

    Code:
    // src/Cron/RequestCache.php
    namespace App\Cron;
    
    use Contao\CoreBundle\ServiceAnnotation\CronJob;
    use Doctrine\DBAL\Connection;
    
     /** 
      * @CronJob("hourly")
      */
    class RequestCache
    {
        private Connection $connection;
    
        public function __construct(Connection $connection)
        {
            $this->connection = $connection;
        }
    
        public function __invoke(): void
        {
            // Leeren des Isotope-Request-Caches
            $this->connection->executeStatement("TRUNCATE TABLE tl_iso_requestcache");
    
        }
    }
    Und muss ich dann in der composer.json das hier ergänzen (den Eintrag gibt es aktuell nicht):
    Code:
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
    Aktuell steht da:

    Code:
        "require-dev": {
            "contao/easy-coding-standard": "^5.3"
        },
        "extra": {
            "contao-component-dir": "assets"
        },
        "scripts": {
            "post-install-cmd": [
                "@php vendor/bin/contao-setup --ansi"
            ],
            "post-update-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ]
        },
        "config": {
            "allow-plugins": {
                "contao-components/installer": true,
                "contao/manager-plugin": true,
                "contao-community-alliance/composer-plugin": true,
                "dealerdirect/phpcodesniffer-composer-installer": true
            }
        }
    Geändert von Ricks (Gestern um 12:40 Uhr)

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Zitat Zitat von Ricks Beitrag anzeigen
    Und muss ich dann in der composer.json das hier ergänzen (den Eintrag gibt es aktuell nicht):
    Code:
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
    Nein, in der Contao Managed Edition ist das automatisch konfiguriert. Siehe https://docs.contao.org/dev/getting-...nd-controllers
    » sponsor me via GitHub or PayPal or Revolut

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Zitat Zitat von Ricks Beitrag anzeigen
    Ich nutze Contao 4.13.15.
    Übrigens, aufgrund von Sicherheitslücken solltest du sehr dringend auf Contao 4.13.49 aktualisieren.
    » sponsor me via GitHub or PayPal or Revolut

  15. #15
    Contao-Fan
    Registriert seit
    05.09.2009.
    Beiträge
    452

    Standard

    Okay, danke für all den Input!! Ich werde den Cronjob später ausprobieren und dann berichten.

  16. #16
    Contao-Fan
    Registriert seit
    05.09.2009.
    Beiträge
    452

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Übrigens, aufgrund von Sicherheitslücken solltest du sehr dringend auf Contao 4.13.49 aktualisieren.
    Beim Versuch der Aktualisierung wurde diese mit folgendem Fehler abgebrochen:

    ***
    [134.3MiB/13.31s]
    Problem 1
    - Root composer.json requires markocupic/contao-isotope-xxx-bundle 1.1.0 -> satisfiable by markocupic/contao-isotope-xxx-bundle[1.1.0].
    - markocupic/contao-isotope-xxx-bundle 1.1.0 requires ramsey/uuid ^4.0 -> found ramsey/uuid[4.0.0, ..., 4.7.6] but these were not loaded, likely because it conflicts with another require.
    ***

    Also es hängt an einer individuellen Erweiterung. Kann jemand sagen, was man da machen muss?

  17. #17
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Beschreibe die exakten einzelnen Schritte, die du für das Update versucht hast.
    » sponsor me via GitHub or PayPal or Revolut

  18. #18
    Contao-Fan
    Registriert seit
    05.09.2009.
    Beiträge
    452

    Standard

    Ich habe mich im Contao-Manager eingeloggt und bei den Paketen hinter Contao die 4.13.49 eingetragen und auf Aktualisieren geklickt.

  19. #19
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Zitat Zitat von Ricks Beitrag anzeigen
    Ich habe mich im Contao-Manager eingeloggt und bei den Paketen hinter Contao die 4.13.49 eingetragen und auf Aktualisieren geklickt.
    Du solltest Contao 4.13.* eintragen und dann auf "Alle Pakete aktualisieren" klicken (nicht auf "Anwenden").
    » sponsor me via GitHub or PayPal or Revolut

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 3 (Registrierte Benutzer: 0, Gäste: 3)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •