我有一些数据在表单提交后插入到数据库中。在将它们插入数据库之后,我需要将这些数据发送到电子邮件,但我必须等待5分钟才能发送它们。
无论如何,我可以等待5分钟,假设有睡眠功能。我不希望用户等待5分钟才能执行脚本。
这就是我的想法:
1)提交表单并将数据插入db
2)将插入的行id发送到在服务器上以某种方式运行的其他脚本作为进程
3)5分钟后发送电子邮件,其中包含作为流程运行的脚本
4)如果还有更多,那就让50个ID保持启动新进程并再次执行3-4步。
这正是我的想法。
我不知道从哪里开始。
请给我一些指示。我不需要redy来使用解决方案。
我不想使用cron job !!!
答案 0 :(得分:1)
伪代码中的错误答案是
Put record in queue with timestamp eg a database
Write server process to monitor queue and see if 5 mins has passed
Send mail if 5 mins have passed.
Write monitoring system to monitor server process and ensure it is working.
更好的答案是在功能上使用linux(如果可用)或其他预先存在的任务调度系统依赖于未指定的平台。安排在特定时间发生的任务正是您需要做的,而这正是这些系统的目的。
答案 1 :(得分:0)
您可以安排在5分钟后运行的任务,如下所示......
在Windows上:
Adding tasks to Windows scheduler with PHP
在Linux上:
shell_exec("echo 'date > /some/dir/date.txt' | at now + 1 minute");
答案 2 :(得分:-1)
最佳方式您可以使用时间字段插入表单数据,这将保留插入时间的记录。在另一方面您创建一个META refresh
30 SEC
的PHP文件,它将检查所有已成熟的记录5 Mintues
并执行您想要做的事情并标记其状态已经执行了操作,因此不会选择这些记录。