ホームページ  >  に質問  >  本文

java - 春にスケジュールされたタスクの実行例外

タスクはもともと月曜日から金曜日まで毎日午前 1 時に実行されていました。ログを確認したところ、日曜日の 20:00 に実行されていたことがわかりました。考えられる原因を調べてください。サーバーはシングルコア CPU です。 .
補足: スケジュールされたタスクのクラスには 2 つのスケジュールされたタスク AB があります。タスク A は月曜日から金曜日の 1 時に実行されます (@Scheduled(cron = "0 0 1 ? MON-FRI") )、タスク B が毎日 3 時に実行されます (@Scheduled(cron = " 0 0 3 ? *"))。ログを確認すると、月曜日から金曜日まではタスク A が最初に実行され、タスクB、つまりBは3時まで待たずに実行されます; 土曜日と日曜日の場合 タスクBはその時点で3時に実行されましたが、タスクAは日曜日の20時に実行されました。 。 。

phpcn_u1582phpcn_u15822713日前965

全員に返信(1)返信します

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-17 10:04:53

    スケジュールされたタスクのプール サイズを指定しなかったと思います。そのため、デフォルトでは、すべてのスケジュールが 1 つのスレッドを共有します。スケジュールのプールサイズを指定する必要があります

    xml

    リーリー

    リーリー

    追加:
    スレッドを共有すると、重大な問題が発生します。タスク A が 2 時間以内に実行されない場合、タスク B の実行時間が遅れるか、実行されないこともあります。

    返事
    0
  • キャンセル返事