2013-04-13 74 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

这不提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 –