Ich habe einige ähnliche Fragen an SO gesehen, aber keiner von mir hat dann geantwortet. Ich hatte noch nie zuvor von CRON gehört und ich bin neu in Laravel. Was ich brauche, ist eine Aufgabe einmal pro Woche auszuführen, um einige Aktionen in meiner Datenbank (MySql) durchzuführen, sagen wir jeden Sonntag um 12:00 Uhr. Wie könnte ich dieses Ziel erreichen?Running Laravel Aufgabe zu einer bestimmten Zeit
Antwort
Wenn Sie cron verwenden können, müssen Sie nur noch
crontab -e
Oder ausführen, wenn Sie als root ausführen müssen:
sudo crontab -e
Dies wird mit einem Texteditor öffnen, so können Sie Ihre ändern crontab und dort finden Sie eine Zeile für jeden geplanten Befehl, wie diese haben:
1 0 * * * php /var/www/myBlog/artisan task:run
Der Befehl in diesem wie wi ll werden in der ersten Minute eines jeden Tages ausgeführt (0h01 oder 12h01). Hier
ist die Erklärung für alles:
* * * * * <command to execute>
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names)
│ │ │ └────────── month (1 - 12)
│ │ └─────────────── day of month (1 - 31)
│ └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)
Also, in Ihrem Fall, werden Sie eine Zeile wie diese erstellen:
0 12 * * 0 <command to execute>
Aber wie macht man das für eine Aufgabe in Laravel? Es gibt viele Möglichkeiten, eine davon ist in meinem ersten Beispiel: Erstellen Sie einen Handwerkerbefehl (Aufgabe: Ausführen) und führen Sie dann einfach Handwerker aus, oder Sie können einfach eine Route in Ihrer App erstellen, die Ihre Aufgabe jedes Mal aufruft, wenn sie getroffen wird :
Route::get('/task/run',array('uses'=>'[email protected]'));
und dann muss man es einfach Ihre crontab hinzufügen, aber Sie werden etwas benötigen eine uRL, wie wget oder curl zu treffen: kann
0 12 * * 0 curl http://mysite.com/run/task
Ja, ich habe das bei Wikipedia gesehen, aber ich kann immer noch nicht sagen, wie ich diese Befehle ausführen soll. Ich arbeite in Windows, also kann ich 'sudo' nicht benutzen.Neben meiner App ist in der Entwicklung, würde dies immer noch funktionieren, wenn es um die Produktion geht? – ecampver
Cron ist im Grunde ein Taskplaner, Sie haben auch das für Windows (http://puu.sh/3gDDl.png). Oder Sie können Cron für Windows installieren, es liegt an Ihnen. Und Sie bauen eine Website, wie ich schon sagte, Sie können eine URL erstellen, die Ihre Aufgaben intern ausführen: TaskController == Ihr Controller Lass, run = Ihre Methode, sobald Ihre Methode ausgelöst wird, können Sie ausführen, was Sie brauchen , Sie brauchen nur etwas, um diese URL zu treffen, und das ist Ihr Taskplaner. –
Ok, ich kann das jetzt nicht testen, aber ich vertraue dir. Vielen Dank ;) – ecampver
Sie erstellen und Ihre Laravel Aufgaben ausführen von der Befehlszeile aus wie jeder andere Artisan-Befehl. Also, wenn Sie auf Windows sind, können Sie einfach den Befehl manuell ausführen, um zu sehen, ob es funktioniert oder nicht.
Wenn Sie dann auf dem Produktionsserver sind (besser natürlich, wenn es auf Unix basiert), können Sie Antonio's Anweisungen folgen, um den Cron-Job zu erstellen und zum Cron-Tab hinzuzufügen. Denken Sie daran, dass Sie die vollständigen Pfade für die Ausführung von PHP kennen müssen.
Mein Tutorial erklärt das alles im Detail: http://maxoffsky.com/code-blog/practical-laravel-using-cron-jobs-in-laravel/
Hoffe, dass Sie die Antwort zu finden, die Sie suchen.
Seit Laravel 5, der einzige Eintrag müssen Sie in crontab setzen nach crontab -e
Ausführung ist
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
Erinnern /path/to/artisan
Teil zu einem Projekt bestimmten Pfad zu ändern.
Und dann können Sie Ihre geplanten Aufgaben und Lauffrequenz in Laravels Klasse definieren. Weitere Informationen finden Sie in der Laravel-Dokumentation: Task Schedule
- 1. Schleife Stunden von einer bestimmten Zeit zu einer anderen Zeit
- 2. Aufgabe nach Zeit abbrechen
- 3. Ausführen einer Anwendung nach einer bestimmten Zeit
- 4. App zu einer bestimmten Zeit starten
- 5. asyncio Scheduling Rückruf zu einer bestimmten Zeit
- 6. iOS: Region Überwachung zu einer bestimmten Zeit
- 7. Sporadic Task wird zu einer bestimmten Zeit ausgeführt
- 8. Android-Zeitplan Aufgabe zu bestimmter Zeit täglich
- 9. Einfügen mit einer bestimmten Zeit?
- 10. Redirect nach einer bestimmten Zeit
- 11. Abmeldung nach einer bestimmten Zeit
- 12. Aufruf einer Modellmethode zu einer bestimmten Zeit (Ruby on Rails)
- 13. Everyday-Benachrichtigungen zu bestimmten Zeit
- 14. Mitteilung zu einem bestimmten Zeit
- 15. Erhalte Hubot, um zu einer bestimmten Zeit zu sprechen?
- 16. Suche nach allen zu einer bestimmten Zeit verfügbaren IDs
- 17. Route Sellerie Aufgabe zu bestimmten Warteschlange
- 18. Wie ein Node-Server mit Jobs zu erstellen, die bestimmte Aufgabe zu einer bestimmten Zeit ausführen kann
- 19. Multitasking: Stoppen Hintergrund Audio zu bestimmten Zeit
- 20. Wie kann ich in Python's Airflow eine Aufgabe nach einer bestimmten Zeit stoppen?
- 21. Wie wiederhole ich eine Aufgabe nach einer bestimmten Zeit in Android?
- 22. Redirect Webpage jeden Freitag zu einer bestimmten Zeit?
- 23. Refresh Guava LoadingCache jeden Tag zu einer bestimmten Zeit
- 24. Eine App zu einer bestimmten Zeit in iOS wecken
- 25. So starten Sie die Anwendung zu einer bestimmten Zeit
- 26. PopUp-Fenster zu einer bestimmten Zeit in WPF?
- 27. Construct DateTime mit dem heutigen Datum zu einer bestimmten Zeit
- 28. Android Erstelle Video Thumbnail zu einer bestimmten Zeit
- 29. Cron-Job starten und stoppen zu einer bestimmten Zeit
- 30. So ändern Sie UIDatePicker zu einer bestimmten Zeit (in Code)
Entschuldigung, ich bearbeite immer noch den anwser –