怎样选择任务调度方式与触发规则?
先说出你的答案
定义边界、关键机制、一个反例;P8题再补容量、失败与验证。
查看完整题解
参考回答
直接回答
简单进程内周期任务可用Scheduled,需持久触发和更复杂计划可评估Quartz等;跨实例分工与恢复则还要分布式协调。选择依据是错过触发怎么办、是否允许重叠、如何补跑和重试,而不是只看能否写一条cron表达式。
讲清原理
Spring cron常用秒到星期的六字段,并可指定时区;夏令时和日历边界可能影响触发,表达式正确不等于每个日期都有同样次数。fixedDelay与fixedRate也要结合具体调度器与执行方式理解。
任务参数和计划变更需有可追踪来源,失败不能无限快速重试。依赖数据库的工作要给每批明确提交与恢复边界,运行时长指标比“定时器创建成功”更有意义。
例子与易错点
先测试固定日期的下一触发时间、无效表达式和幂等重跑,再做实际调度集成。不要靠测试里睡几秒等碰巧执行一次,或把单机计时器当作全局调度平台。
以下为 Java 21 类成员示例,放入同一外部类中使用,依赖 Boot4.1.2 / Framework7.0.10。固定北京时间计算下一次触发;不是时钟驱动调度或夏令时全量验收。
static java.time.ZonedDateTime nextMorning(java.time.ZonedDateTime now) {
return org.springframework.scheduling.support.CronExpression.parse("0 0 8 * * *").next(now);
}
相关题:第 32 题、第 45 题、第 62 题。
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。