以特定时间间隔(包括秒)调度任务

时间:2013-08-05 09:48:52

标签: php linux cron gearman

我有一个运行在标准linux,apache服务器上的php脚本。在某些情况下,我希望在用户执行某些操作后的15分钟内运行一个php脚本。 EG:用户访问时间为13:04:55,后台进程必须正好在13:19:55运行

当前使用的解决方案是每分钟运行一次的cron并检查是否需要采取措施,但这并不准确,因为计时器仅在一分钟内运行且无法设置为秒。 EG:cron在13:04,13:20运行,依此类推。

有关如何设置这些的任何建议吗?

是否有替代产品/装备任何其他简单的解决方案?

3 个答案:

答案 0 :(得分:1)

Fat Controller 与CRON类似,除了指定每个脚本的开头之间的间隔,或者从上一个脚本运行结束到下一个脚本开始之间的时间间隔。在任何一种情况下,您都可以以秒为单位指定时间,并提供各种策略来管理或阻止重叠运行。

文档,示例和下载: http://fat-controller.sourceforge.net

答案 1 :(得分:0)

拥有一个每分钟运行一次的cron作业,查看是否有任何作业需要在那一分钟运行,并在开始每个作业之前休眠适当的秒数。

答案 2 :(得分:0)

也许是一个简单的解决方案,例如在php中设置一个包含事件触发时间的会话变量。在每个后续页面上,您可以将会话变量加载到一个javascript计时器中,该计时器会在会话变量的开始时间与now()时间相等于15分钟后,在后台异步发生事件。

这也可以让你使任务更具可移植性,而不是依赖于cron作业来做一些不属于“正常”功能的事情。

来源:

Jquery ajax call from javascript to PHP

Access PHP variable in JavaScript

Difference between times in JavaScript