Spring Boot スタートアップ クラス コード、タイマー機能を有効にする @EnableScheduling アノテーションを追加
@SpringBootApplication @EnableScheduling // 开启定时功能 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
スケジューリング タスク コード、タスク クラスを @Component アノテーションに挿入する必要があります。 IoC コンテナ
@Component public class TestSchedulingTask { // 这个cron表达式代表从0秒开始,每过3秒执行一次。 @Scheduled(cron = "0/3 * * * * ?") public void test(){ // 大家可以根据公司的业务来实现,更希望是@Autowrite注入service层的接口,业务逻辑写在service层中。 // 这里测试我就输出当前系统时间了... Date date = new Date(System.currentTimeMillis()); String rule = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(rule); String format = simpleDateFormat.format(date); System.out.println(format); } }
では、各タスク メソッドに @Scheduled アノテーションを付ける必要があり、cron 式を指定する必要があることに注意してください。
オンラインで cron 式を生成する Web サイトもあるので安心してください。コンソールが出力する結果を見てみましょう。
cron 式
フィールド | 範囲 | 使用できる文字 |
秒 | 0-59 | ,/-* |
分(分) | 0-59 | ,/-* |
時(時間) | 0- 23 | ,/-* |
日付 (月の日) | 1-31(月の不一致を考慮する必要があります) | ,/-*?LW |
month | 1-12 (対応する英語の略語も使用できます) | , /-* |
曜日 | 1-7 | ,/-*?L |
年(年) | これは基本的に使用されません | これは基本的に使用されません |
使用できる文字 説明:
、 : 複数の値を含む列挙です。たとえば、秒の 5 と 20 は、5 秒と 20 秒でのトリガーを表します。
/: 値 1/値 2。値 1 は開始時刻を表し、値 2 は、たとえば私の場合、0 秒から開始して 3 秒ごとにトリガーする頻度を表します。
-: 範囲値 (どのくらいの長さからどのくらいの長さまで)。
##: すべての範囲に共通。 ?: 日付と週にのみ存在します。毎月 2 日にトリガーしたい場合、週に * を使用すると、毎日トリガーされるため、バグが発生します。それは必要ですか?交換する *。 L: 日付と週に表示される最後を意味します。たとえば、日付で L を使用すると月の最終日を意味し、週で 3L を使用すると最後の水曜日にトリガーされることを意味します。 W: 日付で使用される営業日を示します。9W を使用する場合、9 日が月曜日 1 ~ 5 に該当する場合は直接トリガーされます。9 日が土曜日の場合は、8 日にトリガーされます。 9 日が日曜日の場合、月曜日にトリガーされます。最初のトリガーはトリガー番号 10 です。以上がSpringBootでタイマーを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。