Beiträge: 2.244
Themen: 33
Registriert seit: 25.05.2018
MyBB-Version: 1.8.38
Hi Leute,
ich lasse in einem Plugin folgenden Task anlegen:
PHP-Code: // Check if Task Exists $taskExists = $db->simple_select( 'tasks', 'tid', 'file = \'sn_meintask\'', array('limit' => '1') );
// create new Task if ($numRows == 0) { require_once MYBB_ROOT . '/inc/functions_task.php';
$new_task = [ 'title' => $lang->sn_taskname, 'description' => $db->escape_string($lang->sn_meintask_desc), 'file' => 'sn_meintask', 'minute' => '*', 'hour' => '*', 'day' => '*', 'month' => '*', 'weekday' => '7', 'enabled' => '1', 'logging' => '1', ];
$new_task['nextrun'] = fetch_next_run($new_task);
$db->insert_query('tasks', $new_task); $cache->update_tasks(); }
Die Task-Datei funktioniert einwandfrei, wenn man sie in der Aufgabenplanung manuell startet.
Über den Scheduler wird die Task-Datei allerdings nie gestartet.
Ich finde keinen Fehler und weiß mir momentan keinen Rat.
Und ja, es sind an diesem Wochentag auch User eingeloggt und ja, andere Tasks funktionieren.
Es muss also an "mir" liegen.
Hat jemand eine Idee??
Beiträge: 1.401
Themen: 25
Registriert seit: 11.10.2013
MyBB-Version: 1.8.*
$numRows scheint nicht definiert zu sein
Beiträge: 2.244
Themen: 33
Registriert seit: 25.05.2018
MyBB-Version: 1.8.38
Hallo Sven,
danke, damit hast Du zwar recht, aber es wird trotzdem nichts gestartet.
Hier nochmal die überarbeitete Version:
PHP-Code: // Check if Task Exists $taskExists = $db->simple_select( 'tasks', 'tid', 'file = \'sn_meintask\'', array('limit' => '1') ); $numRows = $db->num_rows($taskExists);
// create new Task if ($numRows == 0) { require_once MYBB_ROOT . '/inc/functions_task.php';
$new_task = [ 'title' => $lang->sn_taskname, 'description' => $db->escape_string($lang->sn_meintask_desc), 'file' => 'sn_meintask', 'minute' => '*', 'hour' => '*', 'day' => '*', 'month' => '*', 'weekday' => '7', 'enabled' => '1', 'logging' => '1', ];
$new_task['nextrun'] = fetch_next_run($new_task);
$db->insert_query('tasks', $new_task); $cache->update_tasks(); }
Beiträge: 1.401
Themen: 25
Registriert seit: 11.10.2013
MyBB-Version: 1.8.*
Hast du mal versucht die Aufgabe manuell neu zu definieren, also nicht via Plugin anlegen zu lassen?
Beiträge: 1.710
Themen: 177
Registriert seit: 08.02.2018
MyBB-Version: 1.8.37
28.03.2021, 18:27
(Dieser Beitrag wurde zuletzt bearbeitet: 28.03.2021, 18:27 von Gerti.)
Wenn ich die Frage von SvePu lese, fällt mir ein, dass ich auch mal einen Task gemacht habe, welcher bestimmte User in entsprechende Unterguppen zuweist. Der Task funktionerte erst als ich ihn einmal im ACP bearbeitete, abspeicherte und manuell ausführte. Seither läuft er entsprechend dem eingestellten Zeitintervall. Warum, wieso, weshalb war mir damals egal, das Ziel war erreicht.
Zum Task:
Mir war es einfach zu Zeitintensiv immer darauf zu achten dass bestimmte User mit entsprechenden Merkmalen auch bestimmte Rechte (z.B. zusätzliche Gruppen) erhalten, oder entzogen bekommen. Jetzt macht es der Task alle 60 Minuten automatisch.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an! ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools ◀ [ Unixzeit ⇔ Realzeit] ♦ [ BOM-Finder] ♦ [ SQL-Prefix-Changer] ♦ [ USV-Rechner] ♦ [ PlugIns]
Beiträge: 2.244
Themen: 33
Registriert seit: 25.05.2018
MyBB-Version: 1.8.38
(28.03.2021, 18:17)SvePu schrieb: Hast du mal versucht die Aufgabe manuell neu zu definieren,
Ja hatte ich mal, kann es aber nochmal testen. Ich habe auch schon x-mal im Scheduler die Zeiten geändert und neu abgespeichert - nichts.
Was mich wundert: In der Augabenverwaltung hängt die nächste Ausführungszeit immer 1 Stunde hinter der aktuellen Zeit hinterher, obwohl im ACP die Zeitzone und Sommerzeitkorrektur korrekt eingestellt ist.
Kann das ein Grund sein? Die nächste Ausführungszeit liegt also augenscheinlich immer in der Vergangenheit.
Beiträge: 837
Themen: 8
Registriert seit: 08.02.2016
MyBB-Version: 1.8.38
Nur ein Hinweis zur Erinnerung:
Nicht vergessen, nach einer Task-Änderung das Forum neu aufzurufen.
Ein Task mit definiertem Intervall läuft niemlas von allein (es ist nicht vergleichbar mit einem Cronjob) - er wird nur dann ausgeführt, wenn das Forum und somit das "<img src="task.php"> im Footer aufgerufen wrid. Denn das ist der Trigger.
Alle fälligen Tasks werden immer beim nächsten Seitenaufruf abgearbeitet.
[EXiTuS]
Beiträge: 2.244
Themen: 33
Registriert seit: 25.05.2018
MyBB-Version: 1.8.38
@[EXiTuS]
Ist mir alles klar. So wenige User habe ich dann doch nicht im Forum, dass es tagelang stillsteht.
Der Scheduler läuft auch fleißig zum nächsten Ausführungszeitpunkt sobald sich wer eingeloggt hat.
Der Task wurde aber trotzdem nicht ausgeführt. Und ja, die Task-Datei ist vorhanden und funktioniert perfekt.
Ich habe schon andere Sachen verschlimmbessert, aber hier komme ich mir gerade richtig blöd vor.
Es war auch nicht geplant, dass ich mir jede Nacht den Wecker stelle, um den Task selbst auszuführen.
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Das Problem ist die Zeitangabe. Der Wochentag wird bei PHP von 0 (Sonntag) bis 6 (Samstag) durchnummeriert und auch die Sterne bei Minuten und Stunde machen wahrscheinlich etwas anderes als du denkst. Ich vermute, dass du "einmalig, egal zu welcher Uhrzeit" meintest, tatsächlich bedeutet das aber "jedes Mal", also von 00:00 bis 23:59 Uhr insgesamt bis zu 1440 mal.
(28.03.2021, 19:11)Schnapsnase schrieb: Was mich wundert: In der Augabenverwaltung hängt die nächste Ausführungszeit immer 1 Stunde hinter der aktuellen Zeit hinterher, obwohl im ACP die Zeitzone und Sommerzeitkorrektur korrekt eingestellt ist.
Kann das ein Grund sein? Die nächste Ausführungszeit liegt also augenscheinlich immer in der Vergangenheit. Ich habe es nicht nachgeschaut, aber vermutlich gilt beim Aufgabensystem die Serverzeit oder GMT. Für die Aufgaben sind Zeitzonen nicht relevant.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 2.244
Themen: 33
Registriert seit: 25.05.2018
MyBB-Version: 1.8.38
(29.03.2021, 09:52)StefanT schrieb: ..tatsächlich bedeutet das aber "jedes Mal", also von 00:00 bis 23:59 Uhr insgesamt bis zu 1440 mal.
Hallo Stefan,
ja das leuchtet alles ein, aber egal wie es definiert ist...(ich habe testweise auch schon "jeden Wochentag/jede Stunde" definiert)
Irgendwann muss doch dieser verdammte Task mal starten - tut er aber nicht.
|