[Frage] Modul als "Modul" ausführen oder als Task aus dem Scheduler TYPO3-Version: 8.5.1

  • getit getit
    Jedi-Ritter
    0 x
    137 Beiträge
    4 Hilfreiche Beiträge
    18. 02. 2017, 11:30

    Ich habe ein Modul geschrieben, das eine SOAP-Anfrage ausführt und das Ergebnis in der DB speichert.
    Dieses Modul soll sowohl manuell (wie bisher also) und auch als Task aus dem Scheduler aufgerufen werden.

    Wenn ich das Modul manuell starte, ruft die Action des Moduls ja das Template auf. Als Task brauche ich aber eine Action die mir true/false zurückliefert - die execute() des Task muss ein boolean zurückliefern.

    Wenn ich jetzt in der indexAction() des Moduls einfach schreibe 'return true' oder (return false), bekomme ich bei der manuellen Ausführung nur noch eine weiße Seite zu sehen.

    Ich bräuchte als etwas wie

    1. public function idexAction() {
    2. // do something
    3. if (TYPO3_MODE == 'SchedulerTask') {
    4. return $result;
    5. } else {
    6. $this->view->assign('result', $result);
    7. }
    8. }

    Kann mir jemand sagen, woran ich unterscheiden kann ob das Modul als Modul oder als Task aufgerufen wurde?


  • 1
  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    20. 02. 2017, 12:07

    Du könntest den [url=https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/BackendUserObject/Index.html]BE-User abfragen[/url] und das weitere Vorgehen davon abhängig machen,
    ob die Action von _cli_scheduler ausgeführt wird oder von einem anderen User.
    Scheduler-Task laufen IMMER unter _cli_scheduler.

  • getit getit
    Jedi-Ritter
    0 x
    137 Beiträge
    4 Hilfreiche Beiträge
    20. 02. 2017, 12:49

    Ich habe das jetzt so gelöst:

    • in der execute() für den Task setze ich: $GLOBALS['T3_VAR']['as'] = 'task';
    • in der 'normal' indexAction() prüfe ich diese Variable

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2831 Beiträge
    104 Hilfreiche Beiträge
    21. 02. 2017, 10:42

    @jenses:
    Seit TYPO3 8.6 stimmt die Aussage nicht mehr: https://docs.typo3.org/typo3cms/extensions/core/8-dev/Changelog/8.6/Feature-79240-SingleCliUserForCliCommands.html

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    22. 02. 2017, 11:03

    Aha, danke.
    Soviel zur Zuverlässigkeit von aktuellen TYPO3-Core-Dokumentationen, markiert mit "latest" #angry#
    Die letzten Jahre verbringt man immer Zeit damit,
    herauszufinden, wie etwas (oder warum etwas nicht) funktioniert,
    nur um festzustellen, daß die Doku wieder mal "post-faktisch" ist.

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2831 Beiträge
    104 Hilfreiche Beiträge
    23. 02. 2017, 09:15

    Da stimme ich Dir zu.
    Hatte das auch nur gerade im Kopf, weil ich mich beim Upgrade gewundert hatte, dass die "_cli*"-User in Upgrade-Wizard gelöscht wurden. Das wollte ich dann mal genauer wisen,w as sich da wie geändert hat.

    [b]Aber[/b], man muss auch positiv erwähnen, dass die Changelog-Seiten inzwischen recht nützlich sind und recht gut Breaking Changes usw. auflisten. Das war früher schwieriger herauszufinden und nachzuvollziehen.

    Glaube, an den Dokus kann inzwischen jeder mitschreiben udn sie aktuell(er) halten ;P

  • 1