实际工作中会有许多用到定时任务的场景,应用层面上可以使用spring scheduling的,使用起来也很方便。更进一步的可以使用quartz等专门处理定时任务的框架,更进一步的还有xxl-job、elastic-job等分布式定时任务框架。系统层面上可以使用linux的crontab。
不同的框架cron表达式略微有所区别。例如spring scheduling只支持6位,quartz支持7位,crontab5位。具体规格查找具体文档。
简单应用
现在我们需要处理系统上的备份文件及日志。一起文件小几个月处理一次,现在每个星期都要去处理。使用crontab来定时处理当然是比较不错的选择。
# 进入当前用户的工作表编辑,其实跟vim一个效果。使用方法也一致,然后就可以编写我们的定时任务规则及命令。
crontab -e
# 可以看当前有哪些任务
crontab -l
'55 15 * * 6,3'表示每周3跟周6的下午3点55分执行。
执行脚本为'cd /bak; /bin/bash remove.sh',具体要做的事就行remove.sh中的内容。
里面就是一个rm -rf的内容。
编写完保存就完事了。