2017-01-01 4 views
0

私はec2-userのAWS EC2インスタンスで1月1日にcronジョブを設定しようとしています。 私はcrontab -u ec2-user -lを行うと、それは次の出力を示しています。Linux AMIでLaravelアプリケーションの年間cronジョブをスケジュールする方法は?

* * * * * usr/bin/php /var/www/html/artisan schedule:run >> /dev/null 2>&1 

をしかし、以下は、Kernel.phpに設定ジョブが解雇されなかったにもかかわらず:

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'); 
} 

コマンド自体が職人から実行(I 'veダブルチェック)、そのロジックは正常です。

->yearly()->at()スケジューリングオプションを使用する方法があるのでしょうか?またはclosure真実試験では?しかし、私はwhen()ステートメントのためにそこに置くべきか分からない。助けてください。

+0

世界のどこにいるかによって、すでに1月1日00:00を過ぎているか、まだ発生していない可能性があります。どのようにそれをテストしていますか? –

+0

私は自分のサーバー(ロンドン地域にある)にSSH接続した後、タイムゾーン(ヨーロッパ/ロンドン)の正しい日付を返します。編集:それは過去00:00 1月1日です。 – omrakhur

+0

@omrakhur 1月1日のシナリオを、過去00:00に再テストする方法を教えてください。 –

答えて

1

Reference

私はcron関数が6つ星を持って気づきました。試してください->cron('0 0 1 1 * *')。また

更新yearlyが同じ表現を持っているので、あなたがこのcommand(..)->yearly()->timezone(..)

のいずれかを試すことができます問題はusr/bin/php/が不足しています。 問題を修正しました

+0

少し混乱します。このページでは:http://www.nncron.ru/help/EN/working/cron-format.htm 6つのアスタリスクがあります。しかし、この1つではありません:http://stackoverflow.com/questions/19502546/cronjob-for-1st-of-january-every-year – omrakhur

+0

@omrakhurはいそれは混乱している、後で6番目の星が入っている可能性があります。 stackoverflow、2013年に回答しました。私はまた、 –

+0

dunnoそれはまだ6つの星で動作していません。 – omrakhur

関連する問題