在PHP中延迟10分钟后执行代码

smi*_*dge 3 php cron

我需要在事件(表单提交)后10分钟延迟PHP中某些代码的执行(例如,发送电子邮件).

完成此任务的最佳方法是什么?

我唯一的选择是每分钟运行一次Cronjob吗?这在共享主机上是否实用?

Nap*_*lux 9

使用cronjobs是最好的方法.

如果您不能在共享主机上使用cronjob(询问客户支持),您可以在连接到互联网(即您的家庭计算机)的计算机上运行cronjob,该计算机将wget运行到服务器上的php页面,进行身份验证在它上面,然后运行PHP代码发送您的电子邮件.

对于PHP代码部分,我将使用包含要发送的所有电子邮件的数据库表,creation_date字段和状态字段.

您的作业调用的PHP代码将执行(伪代码):

$batchRecords = takeAbunchOfRecordsWhereStatus(NOT_SENT);
while($batchRecords) {
    if($creationDate + 10 minutes >= now()) {
        sendEmail();
        markRecordAsSent();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 你打败了我! (4认同)
  • 在另一台计算机上运行cronjob是一个很酷的主意,谢谢! (2认同)
  • 搜索"web cron job",你会发现许多提供远程"cron"服务的网站. (2认同)