[請益] cronjob 先後順序問題

看板PHP作者 (herbacin)時間6年前 (2017/08/03 08:53), 6年前編輯推噓0(0019)
留言19則, 5人參與, 最新討論串1/1
請問一下 假設我有一個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://www.ptt.cc/bbs/PHP/M.1501721590.A.F71.html

08/03 09:39, , 1F
cronjob(2) 設定在12:01~12:04之間跑?
08/03 09:39, 1F

08/03 09:40, , 2F
那你必須確保 1 在4分鐘內完成才可以
08/03 09:40, 2F

08/03 10:22, , 3F
找個地方寫log,job1先跑,插flag,job2等待job1的flag
08/03 10:22, 3F

08/03 10:28, , 4F
同上,job1執行時摸(touch)一個檔案當guard
08/03 10:28, 4F

08/03 10:29, , 5F
job2發現那個檔案存在就回去等 job1執行完後刪除guard
08/03 10:29, 5F

08/03 14:33, , 6F
意思是透過php去檢查那個log檔案是否存在, 如果存在
08/03 14:33, 6F
※ 編輯: herbacin (202.39.9.79), 08/03/2017 14:34:39

08/03 14:34, , 7F
exit()這樣嗎?
08/03 14:34, 7F

08/03 14:35, , 8F
那crontab(2) 排成時間是否要設的很短, 然後一直檢查?
08/03 14:35, 8F
※ 編輯: herbacin (202.39.9.79), 08/03/2017 14:36:20

08/03 14:36, , 9F
我有看到別人作法是使用 &&
08/03 14:36, 9F

08/03 14:37, , 10F
可以確保第一支執行完在執行第二支
08/03 14:37, 10F

08/03 15:52, , 11F
那是連續跑job1 && job2 你沒有每次都要跑job1吧
08/03 15:52, 11F

08/03 15:54, , 12F
間隔不用設得很短 你五分鐘跑一次 了不起跳過一次
08/03 15:54, 12F

08/03 15:55, , 13F
不然就跟他錯開 job1 24:00執行 你job2可以從24:02開始
08/03 15:55, 13F

08/03 15:56, , 14F
執行 或者跟laravel一樣 跑一個dispatcher 由他檢查時
08/03 15:56, 14F

08/03 15:57, , 15F
間和等候狀態再呼叫job1或job2 方法很多
08/03 15:57, 15F

08/03 21:32, , 16F
存在不要exit(),用一個迴圈+sleep去重覆檢查
08/03 21:32, 16F

08/03 23:41, , 17F
樓上意思 crontab(2)的php 不使用crotab去觸發?
08/03 23:41, 17F

08/03 23:43, , 18F
為什麼不用exit() 如果使用crontab觸發了不離開
08/03 23:43, 18F

08/03 23:43, , 19F
那該程式不是會重複被觸發
08/03 23:43, 19F
文章代碼(AID): #1PWdFszn (PHP)