2013-05-01 97 views
-4

我有一些数据在表单提交后插入数据库。将它们插入数据库之后,我需要将这些数据发送给电子邮件,但我必须等5分钟才能发送它们。Php延迟发送数据5分钟

有没有反正我可以等5分钟,让我们来说说带睡眠功能。我不希望用户等待5分钟来执行脚本。

这是我想到的是:

1)提交表单和插入数据到数据库

2)发送插入的行ID到该服务器上的某种方式运行的过程中的一些其它脚本

3 )5分钟后发送电子邮件与作为一个过程运行的脚本

4)如果有更多的话,说50个ID搁置启动新的过程,并从3-4再做步骤。

这就是我想的。

我不知道从哪里开始。

请给我一些指导。我不需要redy来使用解决方案。

我不想使用cron作业!

+0

你的代码在哪里? – 2013-05-01 10:20:37

+1

为什么不使用cron? – 2013-05-01 10:20:41

+0

如果你能解释为什么你需要等5分钟,我们可能会更容易建议一个解决方案 – 2013-05-01 10:21:40

回答

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(如果可用)或其他预先存在的依赖于未指定平台的任务调度系统。在特定时间调度任务正是你需要做的,这就是这些系统设计的目的。

+0

谢谢,谢谢,谢谢。 – pregmatch 2013-05-01 10:35:47

+0

我能够在AT linux守护进程的帮助下解决这个问题:echo“wget http://domain/script.php?[email protected]”|现在+ 5分钟。 – pregmatch 2013-05-06 17:11:03

-1

最好的方法你可以插入你的表格数据与时间字段,将保持插入时间的记录。在其他人身上您创建了一个META refresh30 SECMETA refresh PHP文件这将检查所有记录已成熟与时间5 Mintues并做你想做的事情,并标记已执行的操作的状态,以便这些记录未被选中agian 。