运行预定作业

pta*_*mzz 0 php cron scheduled-tasks

我想在用户提交表单后正好调用函数30分钟.我正在使用javascript setTimeOut()函数,但在页面刷新或浏览器关闭时清除了计时器.无论是什么(浏览器是关闭还是刷新),我想在30分钟之后准确调用该功能,并且我还希望将剩余时间显示为30分钟以及.

我查看了Cron的工作,但我的理解是PHP无法直接调用cron作业.

谁能告诉我这样做的最佳方法是什么?

wup*_*tah 6

  1. at命令和相关的atd后台程序可以安排的东西在未来任意时间执行.你可能不得不写一个专门的PHP脚本来传递给at.您可以向其传递额外的参数,以便知道哪个用户提交了表单等.当然,这些代码将在服务器上执行.PHP代码将结果存储在数据库(或类似的全局数据存储)中.
  2. 为了显示留给用户的时间,我会将时间存储在会话或数据库中.请记住,服务器时间将与用户计算机上的时间不同,因此最好在服务器上进行任何差异计算,而不是使用JavaScript.
  3. 一个setTimeout()呼叫仍然可以使用,以保证浏览器重定向到一个页面(或通过AJAX等加载它)来查看在适当的时候结果(假定用户是在您的网站在事件发生时).保持通话的setTimeout()每个页面加载基于会话的时间正确的时间.

请记住,步骤#1中的PHP代码需要一段时间才能执行,因此您可能需要向#3添加一个小延迟以确保结果可用,以及在结果不可用时进行适当的错误处理出于其他原因.