根据命令每5分钟运行一次PHP脚本2小时

时间:2013-10-20 13:23:28

标签: php ajax

标题的“按命令”部分是必不可少的。我知道如何设置一个cron作业以在预定的时间表上运行PHP文件。我需要的是性质相似,但我认为它需要不同的技术解决方案。

我有一个管理部分,当我的一个管理员登录时,他们应该能够点击一个按钮,在接下来的2个小时内每隔5分钟执行一次PHP脚本。

现在该按钮存在,它调用一个Javascript函数,该函数将AJAX请求发送到相应的PHP文件。如果文件中的PHP函数从那一刻起每隔5分钟运行一次,直到2小时过去,它将使我们的生活变得更加容易。

我知道通过让Javascript每5分钟重复一次请求,可以在客户端完成类似的操作。但是,这对我没有多大帮助。管理员需要能够离开站点,使用不同的参数向同一个文件发送新请求,同时不会中断PHP脚本的重复执行。

所以,我需要某种服务器端解决方案。这甚至可能吗?如果是这样,我该怎么办?

我可以共享客户端代码,但我认为它不重要 - 客户端是标准的AJAX调用;在服务器端就是这样:

$par=$_GET['par'];    //parameter received from AJAX

someFunction($par);   //I need to modify the code so this function (please note there's a parameter) would run every 5 minutes for the next 2 hours

2 个答案:

答案 0 :(得分:4)

一个javascript解决方案需要管理员需要点击按钮然后在接下来的2个小时内打开该页面,这远非理想。我认为这就是你不想要这个的原因。

这是一种方法

  • 当您的管理员点击该按钮时,会在数据库或文件中存储日期和时间
  • 无论
  • 是否每5分钟运行一次cron作业
  • cron作业的第一件事是检查存储的日期时间> =现在 - 2小时
  • 如果不是,自管理员上次按下按钮后,已经过了2个小时,die()

如果其他管理员点击该按钮,则只使用新值覆盖该作业的日期时间。然后,自上次点击以来,该作业将始终每5分钟运行2小时。

答案 1 :(得分:0)

在php中使用at shell命令,以便它可以自行调用。然后使用php来管理它一次调用或设置它们的次数