如何在PHP中安排任务? (存储和运行技术)

时间:2011-03-13 12:33:49

标签: php zend-framework cron scheduled-tasks

大家好 我正在为我的PHP项目使用Zend框架。基本上我没有什么动作可以自动运行。我将使用一个cron工作来完成这个伎俩。 cron作业将运行一个php脚本文件。

直到现在一切似乎都很正常。现在我在我的数据库中创建了一个表,并存储了我需要在其中运行的操作。例如,我需要执行以下操作:

1 - 创建一个示例文件(5次)。

2 - 上传所有样本文件(1次)。

3 - 发送邮件(连续)。

因此,我将在我的表中存储控制器和操作(创建示例文件)并将其重复时间设置为5并设置其执行时间。其他两项行动也将如此。

现在脚本文件每分钟运行一次。在脚本文件中,我将从表中选择执行时间等于当前时间的所有记录,然后运行它们。

现在让事情变得清楚,这个系统确实有效但我正在考虑更好或改进的调度技术。将预定的操作存储在表中听起来像是一个好主意,但我想知道是否有一种更好的方法?!

2 个答案:

答案 0 :(得分:0)

这对我来说似乎很好。您正在使用cron作业来运行PHP脚本,该脚本选择要从数据库表执行的匹配记录。只要数据在数据库中以标准化形式存储,数据就是一种有效的方式。监控服务器上的负载,并根据需要从那里进行调整。

答案 1 :(得分:0)

我的方法是使用循环脚本“清空”(将作业设置为“已完成”)表。并且还有更多CRON具有不同的时序填充表格。所以工作流程是这样的:

minute: nothing to do
minute: nothing to do
hour: added export feed update
minute: export feed update finished
minute: nothing to do
minute: nothing to do
minute: nothing to do
minute: nothing to do
...
minute: nothing to do
five_hours: added "clear the cache"
minute: clear cache finished
minute: nothing to do
minute: nothing to do
...