2013-05-01 123 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 。