2017-07-16 10 views
1

私は毎晩真夜中に実行される予定のSpringでタスクをスケジュールしようとしています。私は春からofficial guideを踏襲し、以下のようにスケジューラ・クラスを作った:Spring Scheduling - 毎晩真夜中のCron式が動作しない?

@Component 
    public class OverduePaymentScheduler {  

     @Scheduled(cron = "0 0 0 * * *") 
     public void trackOverduePayments() { 

       System.out.println("Scheduled task running"); 

     } 
    } 

を時計が午前12時に当たったとき、タスクが実行されませんが。石英スケジューラーのドキュメントからこのlinkのcron式を得ました。

10秒ごとに実行される「*/10 * * * * *」にcron式を変更するとスケジューラが正常に実行されます。

どうしたのですか?

答えて

0

私はついにこのcron式で作業するようになりましたしかし、このようなスケジューラクラスでタイムゾーンを設定しなければなりませんでした。 @Scheduled(cron = "0 0 0 * * *",zone = "Indian/Maldives")

3

毎日午前12時のためにcronパターンの下に使用してください:

// at 12:00 AM every day 
    @Scheduled(cron="0 0 0 * * ?") 

私はこのウェブサイトであなたのcronパターンをチェックしていますhttp://www.cronmaker.com/

パターン0 0 0 * * *は無効と言います。

+0

私はこれを試しましたが、動作しません。私は助けに感謝します。 –

+0

私はこのプロジェクトでこのcronパターンを使用しました。それはうまくいきます...私はシステムクロック時間を午後11時59分に変更することで今でもテストしており、スケジューラは自動的に午前12時に起動されます –

5

これらは、cronの式の有効な形式です:

  • 0 0 * * * * =毎日の時間ごとのトップ。
  • */10 * * * * * = 10秒ごと。
  • 0 0 8-10 * * * =毎日8,9,10時。
  • 0 0 6,19 * * * =毎日午前6時および午後7時。
  • 0 0/30 8-10 * * * = 日ごとに8:00、8:30、9:00、9:30、10:00および10:30。
  • 0 0 9-17 * * MON-FRI =時間の9〜5平日
  • 0 0 0 25 12 ? =深夜

ですべてのクリスマスパターンは次のとおりです。

second, minute, hour, day, month, weekday 

だからあなたの答えは次のとおりです。

0 0 12 * * * 
+1

私は式が毎日午後12時であることを恐れています –

+1

申し訳ありません。 ...私はあなたが12日(真夜中)にしたいと思った...あなたは代わりに24を使用しなければならない12 ... –

関連する問題