0

标题的“根据命令”部分是必不可少的。我知道如何设置 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
4

2 回答 2

4

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

这是一种方法

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

如果另一个管理员单击该按钮,只需用新值覆盖该作业的日期时间。自上次单击后,该作业将始终每 5 分钟运行 2 小时。

于 2013-10-20T13:28:16.700 回答
0

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

于 2013-10-20T13:27:14.483 回答