Ich versuche, einen Cron-Job für den 1. Januar auf meiner AWS EC2-Instanz für ec2-user
einzurichten. Wenn ich crontab -u ec2-user -l
tun, es zeigt die folgende Ausgabe:Wie planen Sie einen jährlichen Cron Job für eine Laravel App auf Linux AMI?
* * * * * usr/bin/php /var/www/html/artisan schedule:run >> /dev/null 2>&1
Aber auch wenn die folgenden in Kernel.php
eingerichtet wurde, wird der Auftrag nie gefeuert:
protected $commands = [
// Commands\Inspire::class,
Commands\TestYearlyJob::class,
];
protected function schedule(Schedule $schedule)
{
$schedule->command('table:test-yearly-job')->cron('0 0 1 1 *')
->timezone('Europe/London')
->appendOutputTo('../taskscheduler.log');
}
Der Befehl selbst von Artisan läuft (I habe doppelt überprüft, so ist seine Logik in Ordnung.
Ich frage mich, ob es eine Möglichkeit gibt, es mit der Zeitplanungsoption ->yearly()->at()
zu tun? Oder vielleicht mit einem closure
Wahrheitstest? Aber ich bin mir nicht sicher, was ich dort für eine when()
Aussage setzen soll. Bitte helfen Sie.
Abhängig davon, wo in der Welt Sie sind vielleicht ist es bereits nach 00:00 1. Januar, oder es ist noch nicht geschehen. Wie testen Sie es? –
Nachdem ich SSH in meinen Server (der in der Region London ist) SSH, gibt es mir das richtige Datum für meine Zeitzone (Europa/London). Edit: Es ist nach 00:00 1. Januar hier. – omrakhur
@omrakhur Wie werden Sie das 1. Januar-Szenario erneut testen, wenn es nach 00:00 Uhr ist. –