在使用crontab配置定时任务是,容易大意出错的配置记录,有温度的文章分享,有态度的日常记录~

一、情景1

设置每天凌晨执行某一任务,结果发现凌晨0点没分钟都执行了一次,我的天!!!

1、分析原因可能是没有配置crontab的minute,例如:

* 0 * * * echo 'test crontab' >> test.txt

2、正确的设置应该是:

* 0 * * * echo 'test crontab' >> test.txt

可能因为大意而导致每天任务执行60次,太可怕了,如果是插入数据,原本插入1万条数据,结果一天就插入了60万条数据,想想你的mongo的存储能跟得上吗?

二、情景2

每一分钟执行某一任务,发现只是每小时的第一分钟执行了,尴尬不!!!

1、分析原因可能是crontab的minute设置错误,列入设置成了如下:

1 * * * * echo 'test crontab' >> test.txt

2、正确设置应该是:

*/1 * * * * echo 'test crontab' >> test.txt
# 或者
* * * * * echo 'test crontab' >> test.txt

大意失荆州,配置需谨慎~

三、情景3

设置每40分钟执行一次,结果发现只有在整点或者40分种的时候执行,惊喜不?

1、原因是设置分钟不是60的倍数,则会在整点(分钟数为0)和分钟%设置时间 = 0是执行(有点绕,稍等分析原因),例如:

* */40 * * * echo 'test crontab' >> test.txt # 只会在整点和40分钟的时候执行

2、分析具体原因

crontab执行标准是,每分钟判断某个任务是否被执行:

  • 每分钟判断一次任务是否执行
  • 当前分钟数除以设置分钟数余数为0则执行

回到问题,设置*/40

  • 整点时,分钟数为0,0除以40余数为0,则执行任务
  • 40分钟时,分钟数为40,40除以40余数为0,则执行任务

不积跬步,无以至千里;不积小流,无以成江海。

最新文章

  1. MySQL 优化之 MRR (Multi-Range Read:二级索引合并回表)
  2. 创建docker私人仓库
  3. 【iCore3应用开发平台】发布 iCore3 应用开发平台PID控制代码
  4. Get sdcard directory by adb
  5. AlertDialog.Builder弹出对话框
  6. 【C语言入门教程】1.3 C语言“32个”关键字
  7. h5页面的公共css
  8. 初学web开发——怎么解决无法找到路径的问题
  9. [Angular2 Router] Optional Route Query Parameters - The queryParams Directive and the Query Parameters Observable
  10. 异常(Exception)
  11. HTML写的第一个邮箱登陆界面
  12. DataTable转json字符串,jQuery.parseJSON()把json字符串转为标准的json对象格式
  13. Git学习03 --远程仓库
  14. myBatis 基础测试 表关联关系配置 集合 测试
  15. solr与.net主从复制
  16. 运用Unity实现AOP拦截器
  17. requestScope含义
  18. Algorithm 算法
  19. oracle实现like多关键字查询
  20. go之路

热门文章

  1. Codeforces Round #613 (Div. 2) C. Fadi and LCM (数学)
  2. 使用Github+jsDelivr搭建图床和存储服务
  3. 实战交付一套dubbo微服务到k8s集群(3)之二进制安装Maven
  4. Microsoft Office Excel 2010 常用操作
  5. python to exe
  6. 5分钟看懂Code128条形码
  7. C语言中函数的调用方式
  8. cnblogs blogs backup & node.js crawler
  9. reCAPTCHA OCR 详解 , 验验证, OCR(光学自动识别)
  10. 如何使用 iMovie 去除视频里面的声音