MyBB.de Forum

Normale Version: Task wird nicht ausgeführt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Da ich weder weiß, was du beim Task jetzt eingestellt hast, noch wie dieser aussieht, kann ich nur raten. Wink

Von einem Fehler im Task selber (den man beim manuellen Ausführen nicht unbedingt bemerkt) bis zu falschen Einstellungen ist alles möglich.

Anhand der Spalte "nextrun" solltest du sehen, welcher Task als nächstes dran ist und die Spalte "locked" muss zu diesem Zeitpunkt auch 0 sein und ändert sich während der Ausführung.
Folgendes ist momentan geplant: *,*,*,*,0 In der Datenbank steht nextrun auf 04.04.21 0:00 Uhr
Lastrun steht auf 29.03.21 2:30 Uhr. Der Task wurde aber zu dieser Zeit nicht ausgeführt.
Locked steht in der DB auf "1" - warum?
Ich kann keine Stelle finden, die die Spalte locked auf 1 setzt, normale Werte sind ein Timestamp oder eben 0.
Ist dort ein Timestamp zu finden, läuft der Task entweder gerade oder ist im letzten Durchlauf abgebrochen.
Richtig Stefan,

ich habe mir die Tabelle nur mal eben schnell im Editor angesehen und daher falsch interpretiert.
bei Locked steht der Timestamp, den ich oben fälschlicherweise als Lastrun beschrieben habe, also 29.03.21 02:xxx Uhr.
Aber warum wird der Task in der DB ausgeknockt?
Ohne den Task zu kennen, kann ich das leider nicht beantworten. Wink
Ich habe die Taskdatei vorläufig erst/nur auf dem XAMPP - habe es aus dem Live-Forum wieder entfernt.
Ich sende Dir den heute Abend mal zu. Wäre nett, wenn Du mal drauf schaust.
Wie gesagt... die Datei funktioniert manuell einwandfrei.
Dieser Teil aus dem geposteten Code:
PHP-Code:
        $new_task['nextrun'] = fetch_next_run($new_task);

        $db->insert_query('tasks'$new_task); 

setzt das nicht den gleichen "nextrun" Wert für alle vorhandenen Tasks, da es keine WHERE Bedingung enthält?
Vielleicht führt das dann zu einer Art Stau.
Hi doylecc,

kann eigentlich nicht sein. Dann müssten nach der Installation alle Tasks in der DB den gleichen Timestamp bei nextrun haben. Das ist aber momentan nicht so. Wink
In welchen Situationen wird denn ein Task in der DB auf "locked" gesetzt?
Sobald die Aufgabe in Abarbeitung ist, wird unter "locked" die altuelle Zeit eingetragen. Wird die Aufgabe ohne Probleme abgeschlossen oder existiert die zur Aufgabe zugeordnete PHP Datei nicht, wird "locked" wieder auf 0 gesetzt.

Dieses soll wohl die zeitgleiche doppelte Ausführung einer Aufgabe verhindern.
(29.03.2021, 13:24)doylecc schrieb: [ -> ]Dieser Teil aus dem geposteten Code:
PHP-Code:
        $new_task['nextrun'] = fetch_next_run($new_task);

        $db->insert_query('tasks'$new_task); 

setzt das nicht den gleichen "nextrun" Wert für alle vorhandenen Tasks, da es keine WHERE Bedingung enthält?
Seit wann braucht man bei insert Bedingungen? Wink
(29.03.2021, 13:52)SvePu schrieb: [ -> ]Sobald die Aufgabe in Abarbeitung ist, wird unter "locked" die altuelle Zeit eingetragen. Wird die Aufgabe ohne Probleme abgeschlossen oder existiert die zur Aufgabe zugeordnete PHP Datei nicht, wird "locked" wieder auf 0 gesetzt.

Dieses soll wohl die zeitgleiche doppelte Ausführung einer Aufgabe verhindern.
Richtig, bleibt der Lock für eine längere Zeit, kann man von einem Problem mit dem Task ausgehen.
Bedenken sollte man, dass bei der manuellen Ausführung im Admin-CP Pfade und Variablen anders gesetzt sein können als bei der automatischen Ausführung. Auch wenn man beispielsweise exit reinpackt, wird der Lock nicht mehr entfernt. Klassiker ist natürlich, dass man eine Variable nicht ins global packt und der eigentlich korrekte Code deswegen einen Fehler wirft. Möglichkeiten gibt es da viele...
Seiten: 1 2 3