作者herbacin (herbacin)
看板PHP
标题[请益] cronjob 先後顺序问题
时间Thu Aug 3 08:53:08 2017
请问一下 假设我有一个cronjob(1) 每5分钟跑一次,
主要将取得资料写到A table
另外有一支cronjob(2) 24:00跑一次, 主要功能是取出A table资料进行计算
但这样当24:00的时候 cronjob(1)与cronjob(2) 会同时执行
这样cronjob(2)再取table A的时候, cronjob(1)可能还没有写入完毕
要怎样才可以等cronjob(1) 再跑 cronjob(2)呢?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.248.217.64
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1501721590.A.F71.html
1F:→ wsybu: cronjob(2) 设定在12:01~12:04之间跑? 08/03 09:39
2F:→ herbacin: 那你必须确保 1 在4分钟内完成才可以 08/03 09:40
3F:→ imcar: 找个地方写log,job1先跑,插flag,job2等待job1的flag 08/03 10:22
4F:→ MOONRAKER: 同上,job1执行时摸(touch)一个档案当guard 08/03 10:28
5F:→ MOONRAKER: job2发现那个档案存在就回去等 job1执行完後删除guard 08/03 10:29
6F:→ herbacin: 意思是透过php去检查那个log档案是否存在, 如果存在 08/03 14:33
※ 编辑: herbacin (202.39.9.79), 08/03/2017 14:34:39
7F:→ herbacin: exit()这样吗? 08/03 14:34
8F:→ herbacin: 那crontab(2) 排成时间是否要设的很短, 然後一直检查? 08/03 14:35
※ 编辑: herbacin (202.39.9.79), 08/03/2017 14:36:20
9F:→ herbacin: 我有看到别人作法是使用 && 08/03 14:36
10F:→ herbacin: 可以确保第一支执行完在执行第二支 08/03 14:37
11F:→ MOONRAKER: 那是连续跑job1 && job2 你没有每次都要跑job1吧 08/03 15:52
12F:→ MOONRAKER: 间隔不用设得很短 你五分钟跑一次 了不起跳过一次 08/03 15:54
13F:→ MOONRAKER: 不然就跟他错开 job1 24:00执行 你job2可以从24:02开始 08/03 15:55
14F:→ MOONRAKER: 执行 或者跟laravel一样 跑一个dispatcher 由他检查时 08/03 15:56
15F:→ MOONRAKER: 间和等候状态再呼叫job1或job2 方法很多 08/03 15:57
16F:→ cf1064: 存在不要exit(),用一个回圈+sleep去重覆检查 08/03 21:32
17F:→ herbacin: 楼上意思 crontab(2)的php 不使用crotab去触发? 08/03 23:41
18F:→ herbacin: 为什麽不用exit() 如果使用crontab触发了不离开 08/03 23:43
19F:→ herbacin: 那该程式不是会重复被触发 08/03 23:43