2013-04-13 70 views
1

我有一個循環並逐行更新MySQL表的cronjob。表完成後,我想再執行一次cronjob執行各種清理活動。有沒有辦法在MySQL表中存儲一段元數據,以便我可以設置一個值來測試後續cron循環來強制退出?恰好執行一次cronjob一次

現在我有:

if (count($records)==0) { // table completed 
    $result = $this->mlist_model->updatelist(); // EXECUTE EXACTLY ONCE 

    // SET SOME SORT OF FLAG HERE TO TEST FOR AND EXIT 
    exit; 
} 
+0

你可以只是做代上每工作一次什麼。有一個函數「做循環」,並在工作中兩次調用該函數? –

+0

最好在mysql數據庫中設置這個值,例如'needs_cleanup = 1'。這樣你就可以在以後找到這些記錄。例如,將數據保存在數據庫中可以恢復,例如,如果cron-job未執行或循環中途失敗。 – thaJeztah

+0

我的想法確切無誤,但是在數據庫或表格中的哪個位置可以放置標誌清理= 1? – user61629

回答

0

所有你需要的是at命令

+1

謝謝埃德,我看着你提供的Man頁面。如果我理解正確,這會在特定時間執行cron作業。但是我無法確定額外的單一cron作業應該運行的確切時間,所以除非我誤解我認爲這不會起作用 – user61629

+0

「我想再次執行cronjob多一次」 - 隨意只要一次就完成任務。不需要檢查,因爲它只需要一次。 –

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 –