[Frage] Scheduler-Task -> Typoscript-Cache löschen [Gelöst] TYPO3-Version: 4.7.12

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    20. 09. 2013, 10:32

    Moin!
    Auf einer Kundenseite lasse ich einen wöchentlichen direct_mail - Newsletter an > 7000 Empfänger versenden.
    Die Newsletterseite besteht zum größten Teil aus tt_news-Plugins für diverse News-Kategorien,
    angezeigt werden die News der letzten 7 Tage (per Hook extraCodesProcessor & processSelectConfHook).
    Der Kunde braucht also nur seine neuen News einzupflegen und das korrekte Datum eintragen,
    die eigentliche Newsletterseite dagegen benötigt keine wöchentlichen Änderungen.

    Der wöchentliche Versand wird durch den Scheduler angestoßen, dazu habe ich eine Direct-Mail vom Typ "Draft of internal page" erstellt. Das funktioniert alles einwandfrei.

    Um die Newsletter archivieren zu können, habe ich einen Scheduler-Task erstellt.
    Dieser startet kurz vor dem Versand, also nachdem alle News ihr Startdatum erreicht haben.
    Dazu lese ich den Inhalt der Newsletterseite ein per curl ein, head-tag etc. werden ausgefiltert.
    Anschließend wird eine neue Seite unterhalb von "Newsletterarchiv" erstellt, auf der Seite ein Datensatz sys_template angelegt, dieser dann mit dem Newsltterinhalt nach lib.newsletterContent gefüttert. lib.newsletterContent wird dann als Seiteinhalt ausgegeben. Auch das funktioniert einwandfrei.

    Nun zu meinem Problem:
    Auf der Newsletterseite gibt es einen Link "Sollte der Newsletter unvollständig oder fehlerhaft angezeigt werden, dann öffnen Sie ihn bitte in Ihrem Browser.",
    die Uid zu diesem typolink wird per TS-Konstante gesetzt.
    Diese TS-Konstante wird nun durch obigen Task wöchentlich auf die soeben erstellte Page-Uid unterhalb von "Newsletterarchiv" geändert.
    Damit die Änderung greift und der Link auf die neueste Seite im Newsletterarchiv geht, muß natürlich der Cache gelöscht werden.
    Und hier drückt der Schuh, kein der folgenden (teilweise auskommentierten) Varianten löscht den Cache:

    1. // Cache löschen
    2. $tce = t3lib_div::makeInstance('t3lib_TCEmain');
    3. $tce->start(Array(), Array());
    4. $tce->clear_cacheCmd('all');
    5. // 2013-09-03 :
    6. $tce->clear_cacheCmd('temp_CACHED');
    7.  
    8. // 2013-08-23 :
    9. #$GLOBALS['typo3CacheManager']->flushCaches();
    10. // ODER:
    11. #$GLOBALS['typo3CacheManager']->flushCachesByTag('pageId_' . $this->newsletterPid);

    Lösche ich die Caches manuell im BE, wird der Link aktualisiert, nicht jedoch vom Scheduler-Task aus, obwohl die Aktion im syslog aufgezeichnet wird:
    [lang]: User _cli_scheduler has cleared the language cache
    User _cli_scheduler has cleared the cache (cacheCmd=temp_CACHED)
    [lang]: User _cli_scheduler has cleared the language cache
    User _cli_scheduler has cleared the cache (cacheCmd=all)

    Lösungsvorschläge?
    Kann es so einfach sein, daß _cli_scheduler einfach nur ein TS-Config "options.clearCache.all=1" braucht?

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    07. 10. 2013, 15:18 - Lösung

    Habe für _cli_scheduler

    1. options.clearCache.all=1

    konfiguriert,
    mehr oder weniger gleichzeitig auch direct_mail geupdatet.
    Eine (oder beide?) der Maßnahmen hat das Problem jedenfalls gelöst.


  • 1
  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    01. 10. 2013, 09:43

    Hat niemand auch nur eine Idee?

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    07. 10. 2013, 15:18

    Habe für _cli_scheduler

    1. options.clearCache.all=1

    konfiguriert,
    mehr oder weniger gleichzeitig auch direct_mail geupdatet.
    Eine (oder beide?) der Maßnahmen hat das Problem jedenfalls gelöst.

  • 1