按一定的时间间隔(包括秒)安排任务


Scheduling a task at certain time interval (including seconds)

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

目前使用的解决方案是一个每分钟运行一次的cron,它检查是否需要操作,但这并不准确,因为计时器正好按分钟运行,不能设置为秒。例如:cron在13:04、13:20运行,依此类推

关于如何设置这些,有什么建议吗?

是否有替代产品/齿轮手或其他简单的解决方案?

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

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

有一个每分钟运行一次的cron作业,查看是否有作业需要在该分钟运行,并在启动每个作业之前睡眠适当的秒数。

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

这也将允许您使任务更具可移植性,而不是依赖cron作业来做一些不在其"正常"功能中的事情。

来源:

从javascript到PHP 的Jquery ajax调用

访问JavaScript 中的PHP变量

JavaScript 中的时间差异