基于不同的操作系统平台和编程语言,有多种开源的定时任务解决方案。
单机版定时任务
在Linux操作系统上,可以通过配置crontab任务实现定时调度。
在Java语言生态中,JDK本身提供了一些简单的定时任务实现机制,比如:TimerTask
,ScheduledThreadPoolExecutor
;使用Spring框架时,可以使用TaskScheduler配置定时任务;还可以使用定时任务框架Quartz。
crontab表达式://TODO
Quartz表达式:
https://www.cnblogs.com/sunjie9606/archive/2012/03/15/2397626.html QuartZ Cron表达式
https://blog.csdn.net/wzh474420999/article/details/78389845 Quartz 当 Job 执行时间超过触发间隔时间时所发生的情况
Spring Task表达式:
https://blog.csdn.net/HeatDeath/article/details/79956998 Spring Task crontab 表达式的使用方法
https://www.xuxueli.com/xxl-job/
集群版定时任务框架
Elastic-Job
https://shardingsphere.apache.org/elasticjob/