2 回答

TA貢獻1852條經驗 獲得超7個贊
就我而言,我習慣于@Scheduled
安排一個較短的周期。CronSequenceGenerator
我們正在使用該計劃在運行時檢查 cron 。

TA貢獻1804條經驗 獲得超8個贊
然后您需要確定計劃任務的執(zhí)行頻率。為此,您將創(chuàng)建一個適合您需要的 CRON 表達式。
最后在任務中,只需檢查您的條件并相應地執(zhí)行代碼。
這是一些示例代碼:
@Component
public class ScheduledTask{
? private static final Logger log = LoggerFactory.getLogger(ScheduledTask.class);
? @Autowired
? SomeService someService;
? @Scheduled(cron = "0 5 0 * * ?", zone="America/Mexico_City")
? public void doSomething() {
? ? ? log.info("Starting scheduled task");
? ? ? if(condition) {
? ? ? ? startScheduled();
? ? ? } else {
? ? ? ? stopScheduled();
? ? ? }
? }
?}
請注意 @Component 注釋,此外,這個玉米表達式將在我所在時區(qū)的每天 00:05 執(zhí)行任務。
希望這可以幫助
添加回答
舉報