在开发中经常要用到定时任务的场景,有多种可选方案。
可选的方式有:
在 Springboot 项目中可以使用注解开始定时任务。
注解说明:
示例如下:
@Configuration //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling // 2.开启定时任务
public class SaticScheduleTask {
//3.添加定时任务
@Scheduled(cron = "0/5 * * * * ?")
//或直接指定时间间隔,例如:5秒
//@Scheduled(fixedRate=5000)
private void configureTasks() {
System.err.println("执行静态定时任务时间: " + LocalDateTime.now());
}
}
工具型软件cron是一款类Unix的操作系统下的基于时间的任务管理系统。用户们可以通过cron在固定时间、日期、间隔下,运行定期任务(可以是命令和脚本)。
cron常用于运维和管理,但也可用于其他地方,如:定期下载文件和邮件。
cron该词来源于希腊语chronos(χρόνος),原意是时间。
下面再分别讲述。
usage: crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
# 文件格式說明
# ┌──分鐘(0 - 59)
# │ ┌──小時(0 - 23)
# │ │ ┌──日(1 - 31)
# │ │ │ ┌─月(1 - 12)
# │ │ │ │ ┌─星期(0 - 6,表示从周日到周六)
# │ │ │ │ │
# * * * * * 用户名 被執行的命令
一些表达式示例:
# 每1分钟执行一次command
* * * * * command
# 每小时的第3和第15分钟执行
3,15 * * * * command
# 在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * command
# 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
添加或更新 crontab 中的命令
crontab -e
执行后,会进入 vim 编辑器,添加一条 cron 任务即可,比如编辑:
*/1 * * * * curl http://192.168.1.8:8080/run
查看有哪些定时任务
crontab -l
移除当前用户的creon任务
crontab -r
注意要先备份后再删除哦。
https://zh.wikipedia.org/wiki/Cron https://www.jianshu.com/p/d93e2b177814
https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/