私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
プロジェクト内で @Scheduled を使用する場合、プロジェクト開始時に指定した非同期タスクを事前に実行するにはどうすればよいですか?
@Scheduled アノテーションは、タスクの実行時間を柔軟に制御するための複数のパラメーターをサポートしています。
/**
* @Author 码至终章
* @Version 1.0
*/
@Component
public class ScheduledTest {
@Scheduled(cron = "* 1 * * * ?")
public void task1() throws Exception{
System.out.println("task1 执行: " + Thread.currentThread() + "-" + DateTime.now());
}
}
このクラスは主に起動時に指定されたタスクメソッドを手動で呼び出します。
/**
* @Author 码至终章
* @Version 1.0
*/
@Component
public class StartupTasks {
private final ScheduledTest scheduledTasks;
public StartupTasks(ScheduledTest scheduledTasks) {
this.scheduledTasks = scheduledTasks;
}
@PostConstruct
public void startUp() {
try {
System.out.println("服务启动执行任务");
scheduledTasks.task1();
}catch (Exception e){
e.printStackTrace();
}
}
}
注: スケジュールされたタスクが実行されるように、必ず @EnableScheduling をスタートアップ クラスに追加してください。これはこの記事のロジック テストには影響しません。
サービス開始後、印刷情報を確認する