相信許多人在寫大量發信的時候,
都會要求使用者不能關閉正在發信的視窗,
因為關閉視窗發email的機制就會中斷,
或者也有人提出另外一種作法就是利用cli的方式執行
在linux上丟到background處理,在windows內用at的指令下排程!
不過事實上不必那麼麻煩!
只要利用php的ignore-user-abort加上set_time_limit來執行即可
這樣處理即使user關掉電腦,php還是會繼續執行下去的
寫個簡單的範例好了
```php
//讓程式執行到結束為止
set_time_limit(0);
//瀏覽器關閉後繼續執行
ignore_user_abort(true);
sleep(15);
touch("/test.txt");
```
執行後15秒可以到根目錄下看是否建立test.txt這個檔案(記得要開放寫入權限)
※利用這個方式,可能會發現Browser無法再瀏覽該網站的任何一個頁面,
這個在之前有提過Session的問題,記得執行session_commit就可以避免此問題了
你好,
回覆刪除如果想停止這個程式,要怎樣做?
如果由database loop mail,
sleep() 應該放在那一個位置?
我不太懂你所謂的database loop mail
回覆刪除但如果是由系統來處理這件事情的話!
你可以將執行的pid記錄進單一檔案內
再依pid去砍process
大大這EMAIL大量發信程式 該怎麼寫呢
回覆刪除請大大指教