Erstes Task zum Test programmieren - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html) +--- Forum: Plugin-Entwicklung (https://www.mybb.de/forum/forum-74.html) +--- Thema: Erstes Task zum Test programmieren (/thread-39190.html) |
Erstes Task zum Test programmieren - skrilaxrev - 01.07.2024 Hallo, da mein neues Forum in einer Woche hochgeladen wird (wer meine Beiträge etwas verfolgt hat, weiß, was ich meine), wollte ich aus ein paar alten Scripts, die sich lediglich in die Datenbank hacken, saubere Tasks machen. Ich habe mich daher daran versucht ein erstes Test-Task zu programmieren, das einfach einen Testpost in einem Thema macht. Die manuelle Ausführung im Browser funktioniert und das Script tut was es soll, aber über den Taskmanager nicht. PHP-Code: <?php Jetzt frage ich mich natürlich, warum. Leider wird auch kein Fehler angezeigt. "Die ausgewählte Aufgabe wurde ausgeführt." erscheint und ansonsten passiert nichts. Kein Testbeitrag zu sehen. Hat vielleicht jemand auf die schnelle einen Tipp, ob ich irgendetwas vergessen habe oder sieht das Script in euren Augen auch in Ordnung aus? Viele Grüße SkrilaxRev RE: Erstes Task zum Test programmieren - [ExiTuS] - 01.07.2024 Wenn dein Script manuell funktioniert, ist es technisch gesehen doch korrekt. Ist der Task tatsächlich aktiviert und stimmen die geplanten Zeiten? Ist dein Forum nach dem Aktivieren des Tasks einmal aufgerufen worden? Ein Task kann nur ausgeführt werden, wenn auch ein Seitenaufruf stattfindet (von allein wird niemals ein Task ausgeführt - es braucht den Trigger des Seitenaufrufs - daher könnten geplante Zeiten nicht immer mit dem tatsächlichen Ausführen übereinstimmen) Befindet sich diese Zeile in deinem Footer-Templates (am Seitenende)? <img src="https://www.mybb.de/forum/task.php" width="1" height="1" alt="" /> Diese startet die Aufgaben. [ETS] RE: Erstes Task zum Test programmieren - StefanT - 01.07.2024 Das Problem ist, dass die Datei überhaupt nicht wie ein Task aufgebaut ist. Es gibt keine task_... Funktion und echo sollte man auch nicht nutzen. Schau dir mal die anderen Tasks als Vorlage an. RE: Erstes Task zum Test programmieren - skrilaxrev - 02.07.2024 (01.07.2024, 14:12)StefanT schrieb: Das Problem ist, dass die Datei überhaupt nicht wie ein Task aufgebaut ist. Es gibt keine task_... Funktion und echo sollte man auch nicht nutzen. Schau dir mal die anderen Tasks als Vorlage an. Hallo Stefan, die Echos hatte ich nur zum Test für den Direktaufruf hinzugefügt. Andere Tasks habe ich mir vorher angesehen, konnte aber nichts besonders entdecken. Der Code sieht momentan so aus. PHP-Code: <?php Ergebnis ist dasselbe: Erfolgsmeldung, aber kein Testpost. Es gibt auch keinen Eintrag im Log. (01.07.2024, 13:14)[ExiTuS] schrieb: Wenn dein Script manuell funktioniert, ist es technisch gesehen doch korrekt. Hallo ExiTuS, danke für den Tipp, aber ich habe die Aufgabe manuell ausgeführt. Optionen -> Aufgabe ausführen. Darum geht es ja, dass nicht einmal das funktioniert. Höre mir gerne an, was ich vergessen habe. Wenn jemand ein einfaches selbst-geschriebenes Task rumliegen hat, wäre das vielleicht eine Hilfe. Viele Grüße SkrilaxRev RE: Erstes Task zum Test programmieren - StefanT - 02.07.2024 Erst einmal solltest du keinen Code außerhalb der task-function haben. Da du die global.php einbindest, wird das wahrscheinlich in einen Fehler laufen. Außerdem würde ich auf die Mischung von Groß- und Kleinschreibung verzichten. Weicht das an einer Stelle (Task-Einstellungen, Dateiname, Code) ab, wird deine Funktion nie ausgeführt. Als Beispiel kannst du eine beliebige Aufgabe des MyBB nehmen. Dise sollten eigentlich alles beinhalten, was du aktuell benötigst. Fang am besten simpel an, in dem du nur einen Log-Eintrag einfügst. Bedenke außerdem, dass ein Task gesperrt wird, wenn er nicht sauber beendet wird und dann erst mal gar nicht mehr ausgeführt werden kann bis die Sperre abläuft. Das soll verhindern, dass eine lang laufende Aufgabe mehrfach gestartet werden kann. RE: Erstes Task zum Test programmieren - skrilaxrev - 02.07.2024 Hallo Stefan, danke für die Tipps. Wo kann ich denn diese Sperre sehen? Die Global.php habe ich entfernt. Ich hatte angenommen, dass ich die einbinden muss. Großschreibung habe ich auch entfernt, obwohl ich jetzt nicht verstanden habe, wieso das zu Problem führen sollte, da der Code beim manuellen Aufruf im Browser funktioniert hat. In den Task-Einstellungen wählt man ja nur die Datei aus. PHP-Code: <?php Funktioniert so auch nicht. Hätte mich auch gewundert, weil das Script vorher bereits funktioniert hat, nur eben nicht über den Taskmanager. Zu den anderen Tasks: Die fangen z.B. so an... PHP-Code: if(!defined("IN_MYBB")) ...und zum Schluss gibt es noch sowas: PHP-Code: add_task_log($task, $lang->task_massmail_ran); Dazwischen befindet sich die Funktion und das war's. Bei mir sieht das nicht groß anders aus. Etwas viel Einfacheres als einen Testpost kann ich mir auch nicht vorstellen. Hoffe also mal, dass es an der Sperre liegt. RE: Erstes Task zum Test programmieren - StefanT - 02.07.2024 (02.07.2024, 13:48)skrilaxrev schrieb: Wo kann ich denn diese Sperre sehen?Im Cache "tasks". (02.07.2024, 13:48)skrilaxrev schrieb: Großschreibung habe ich auch entfernt, obwohl ich jetzt nicht verstanden habe, wieso das zu Problem führen sollte, da der Code beim manuellen Aufruf im Browser funktioniert hat. In den Task-Einstellungen wählt man ja nur die Datei aus.Ausschlussverfahren. Es wäre ungünstig, wenn es an so etwas Einfachem scheitert. |