Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中调度任务?(存储和运行技术)_Php_Zend Framework_Cron_Scheduled Tasks - Fatal编程技术网

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

如何在PHP中调度任务?(存储和运行技术),php,zend-framework,cron,scheduled-tasks,Php,Zend Framework,Cron,Scheduled Tasks,大家好 我正在为我的PHP项目使用Zend框架。基本上,我有几个动作要自动运行。我将使用cron作业来完成这项任务。cron作业将运行一个php脚本文件 到目前为止,一切似乎都很正常。现在,我在数据库中创建了一个表,并存储了需要在其中运行的操作。例如,我需要执行以下操作: 1-创建一个示例文件(5次) 2-上传所有样本文件(1次) 3-发送邮件(连续) 因此,我将在表中存储(创建示例文件)的控制器和操作,并将其重复时间设置为5,同时设置其执行时间。其他两个动作也将如此 现在脚本文件每分钟运行一次

大家好 我正在为我的PHP项目使用Zend框架。基本上,我有几个动作要自动运行。我将使用cron作业来完成这项任务。cron作业将运行一个php脚本文件

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

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

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

3-发送邮件(连续)

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

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


现在,为了让事情变得更清楚,这个系统实际上是工作的,但我正在考虑一种更好或改进的调度器技术。将计划的操作存储在表中听起来是个好主意,但我想知道是否有更好的方法

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

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

我的建议是使用循环脚本“清空”(将作业设置为“完成”)表。还有更多具有不同计时的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
...

我的建议是使用循环脚本“清空”(将作业设置为“完成”)表。还有更多具有不同计时的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
...

他们多久更改一次,通过什么界面?我有一个UI屏幕来控制计划的任务。用户只需从下拉列表中选择要添加到表中的任务,并指定任务的时间和重复次数。用户可以查看表中的所有任务,并可以修改或删除其中的任何任务。任务本身定义一次并加载到下拉列表中。然后,用户可以选择任意数量的任务添加到数据库的cronjobs表中。更改的频率取决于业务需要,因为我们仍处于开发阶段。更改频率是多少,通过什么界面?我有一个UI屏幕用于控制计划任务。用户只需从下拉列表中选择要添加到表中的任务,并指定任务的时间和重复次数。用户可以查看表中的所有任务,并可以修改或删除其中的任何任务。任务本身定义一次并加载到下拉列表中。然后,用户可以选择任意数量的任务添加到数据库的cronjobs表中。更改的频率取决于业务需要,因为我们仍处于开发阶段。我一直在寻找新的想法,因为我被要求使cron jobs系统更加通用,以便它可以在任何应用程序或数据库上工作。这就是为什么我认为也许有更好的事情要做!我一直在寻找新的想法,因为我被要求使cron-jobs系统更加通用,这样它就可以在任何应用程序或数据库上工作。这就是为什么我认为也许有更好的事情要做!