Heim >PHP-Framework >Laravel >Einige häufige Probleme, wenn geplante Laravel-Aufgaben nicht ausgeführt werden
Mit der kontinuierlichen Weiterentwicklung des modernen Internets und moderner Anwendungen haben viele Programmierer begonnen, Laravel als ihr eigenes Framework zu verwenden. Die im Laravel-Framework bereitgestellte Funktion für geplante Aufgaben kann durch einfache Konfiguration einige Aufgaben automatisch ausführen. Manchmal stellen wir jedoch fest, dass diese geplanten Aufgaben nicht wie erwartet ausgeführt werden. Was sollten wir zu diesem Zeitpunkt tun?
In diesem Artikel besprechen wir einige häufige Probleme, wenn geplante Laravel-Aufgaben nicht ausgeführt werden, und stellen entsprechende Lösungen bereit.
Zuerst müssen wir überprüfen, ob unsere geplante Aufgabe korrekt konfiguriert wurde. Das Konfigurieren geplanter Aufgaben im Laravel-Framework ist sehr einfach. Definieren Sie einfach eine Zeitplanmethode in der Datei app/Console/Kernel.php. Die Zeitplanmethode enthält alle Aufgaben, die wir ausführen möchten, wie unten gezeigt:
protected function schedule(Schedule $schedule) { $schedule->command('email:send')->daily(); $schedule->command('email:send --force')->hourly(); }
Beachten Sie, dass der Befehl email:send hier die spezifischen Aufgaben darstellt, die wir ausführen möchten. Wenn unsere geplanten Aufgaben korrekt konfiguriert sind, die geplanten Aufgaben jedoch immer noch nicht ausgeführt werden können, können wir die folgenden Aspekte überprüfen:
Laravel-geplante Aufgaben hängen von der Systemzeit ab , dann werden geplante Aufgaben möglicherweise nicht rechtzeitig ausgeführt. Daher müssen wir prüfen, ob die Systemzeit korrekt ist.
Wenn wir das Linux-Betriebssystem verwenden, geben Sie den folgenden Befehl in das Terminal ein, um die aktuelle Systemzeit anzuzeigen:
$ date
Wenn wir das Windows-Betriebssystem verwenden, geben Sie den folgenden Befehl in die Eingabeaufforderung ein, um die aktuelle Systemzeit anzuzeigen:
> time/T > date/T
Wenn die Systemzeit falsch ist und wir die richtige Zeit manuell einstellen müssen.
Laravel-geplante Aufgaben werden standardmäßig mit den Berechtigungen des aktuell angemeldeten Benutzers ausgeführt. Wenn der aktuell angemeldete Benutzer nicht über ausreichende Berechtigungen verfügt, werden geplante Aufgaben möglicherweise nicht ordnungsgemäß ausgeführt. Daher müssen wir prüfen, ob die Benutzerberechtigungen zum Ausführen der geplanten Aufgabe ausreichend sind.
Sie können den folgenden Befehl verwenden, um den aktuellen Benutzer anzuzeigen:
$ whoami
Wenn die aktuellen Benutzerrechte nicht ausreichen, können wir versuchen, den sudo-Befehl zu verwenden, um geplante Laravel-Aufgaben auszuführen:
$ sudo php artisan schedule:run
Beachten Sie, dass wir Administratorrechte benötigen um den sudo-Befehl zu verwenden.
Der Standardmechanismus von Laravel geplanten Aufgaben besteht darin, einer Aufgabe während der Ausführung eine Sperre hinzuzufügen, um eine wiederholte Ausführung zu verhindern. Wenn die Ausführung der aktuellen Aufgabe noch nicht abgeschlossen ist, kann keine neue Aufgabe gestartet werden. Zu diesem Zeitpunkt müssen wir die folgenden zwei Situationen überprüfen:
Abschließend müssen wir überprüfen, ob die geplante Aufgabe aktiviert ist. Einige geplante Aufgaben können manuell aktiviert werden. Wir müssen überprüfen, ob sie aktiviert sind.
Wir können alle geplanten Aufgaben mit dem folgenden Befehl anzeigen:
$ crontab -l
Wenn die geplante Aufgabe nicht in der Liste angezeigt wird, müssen wir sie manuell zur Liste der geplanten Aufgaben hinzufügen.
Zusammenfassung
Im Laravel-Framework können Sie einige Aufgaben einfach automatisieren, indem Sie geplante Aufgaben verwenden. Während des eigentlichen Entwicklungsprozesses kann es jedoch vorkommen, dass geplante Aufgaben nicht ausgeführt werden. Dieser Artikel bietet einige gängige Lösungen für dieses Problem, die uns helfen sollen, geplante Aufgaben im Laravel-Framework besser zu nutzen.
Das obige ist der detaillierte Inhalt vonEinige häufige Probleme, wenn geplante Laravel-Aufgaben nicht ausgeführt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!