作者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/m.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