作者:
herbacin (herbacin)
2017-08-03 08:53:08請問一下 假設我有一個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)呢?
謝謝
作者:
wsybu (%小步步%)
2017-08-03 09:39:00cronjob(2) 設定在12:01~12:04之間跑?
作者:
herbacin (herbacin)
2017-08-03 09:40:00那你必須確保 1 在4分鐘內完成才可以
作者:
imcar (imcar)
2017-08-03 10:22:00找個地方寫log,job1先跑,插flag,job2等待job1的flag
同上,job1執行時摸(touch)一個檔案當guardjob2發現那個檔案存在就回去等 job1執行完後刪除guard
作者:
herbacin (herbacin)
2017-08-03 14:33:00意思是透過php去檢查那個log檔案是否存在, 如果存在exit()這樣嗎?那crontab(2) 排成時間是否要設的很短, 然後一直檢查?我有看到別人作法是使用 &&可以確保第一支執行完在執行第二支
那是連續跑job1 && job2 你沒有每次都要跑job1吧間隔不用設得很短 你五分鐘跑一次 了不起跳過一次不然就跟他錯開 job1 24:00執行 你job2可以從24:02開始執行 或者跟laravel一樣 跑一個dispatcher 由他檢查時間和等候狀態再呼叫job1或job2 方法很多
作者:
cf1064 (蚵仔)
2017-08-03 21:32:00存在不要exit(),用一個迴圈+sleep去重覆檢查
作者:
herbacin (herbacin)
2017-08-03 23:41:00樓上意思 crontab(2)的php 不使用crotab去觸發?為什麼不用exit() 如果使用crontab觸發了不離開那該程式不是會重複被觸發