我有一個郵件腳本循環約900個訂戶(數據庫中),爲每個訂戶建立一個單獨的電子郵件,並通過SMTP發送。該腳本通過瀏覽器手動觸發,但涉及的記錄數量導致腳本開始超時。在測試中,錯誤幾乎總是致命錯誤超過最大執行時間(儘管一次出現與mail()和SMTP相關的錯誤)。我想我應該從命令行運行這種類型的腳本,但是,腳本仍然需要手動觸發(通過CMS管理員用戶) - 有沒有人有任何建議,以處理這個問題的好方法?最有效的方式來執行PHP郵件腳本循環通過100個記錄
回答
我想你可以在腳本中設置PHP腳本的超時時間。
但是,我寧願使用基於CRON + PHP-CLI的解決方案。無論您使用CGI還是CLI,PHP代碼都保持不變,但是,在CLI模式下,不存在隱式時間限制。
如果這應該手動執行,CRON作業不會有多大幫助。 – Ivan 2011-03-09 12:44:39
在這種情況下,您可以在用戶完成手動部分(例如選擇收件人)後「分叉」php-cli。請參閱[在Linux上從PHP運行後臺進程](http://911-need-code-help.blogspot.com/2010/04/running-background-process-in-php.html) – 2011-03-09 12:48:48
這是!你手動創建一個「tasklist」,cronjob每2分鐘觸發一次,併發送列表中的前10個郵件(數字隨機) – Flo 2011-03-09 12:48:49
set_time_limit(0);應該做的伎倆。
沒有太多的話要說,更有效的方式,除非我們看到你的代碼....
與cronjobs每一次工作的cron執行腳本可以發送郵件的量小。
例如,Typo3 mailer engine每5分鐘調用一次,並檢查是否需要發送郵件。
因此,用戶不會手動觸發郵件腳本。用戶只標記郵件引擎應發送的通訊。
- 1. 最好的方式來循環smtpmailer電子郵件php循環
- 2. 通過腳本設置循環執行
- 3. PL/SQL腳本,通過記錄循環得到的所有記錄與條件
- 4. 通過PHP執行腳本
- 5. PHP腳本中的循環未執行
- 6. 通過Shell腳本進行通信的最有效方式 - >運行Java APP
- 7. 有條件地執行PHP腳本來發送電子郵件
- 8. While循環跳過Unix Shell腳本中的最後記錄
- 9. Shell腳本 - 通過目錄循環?
- 10. 通過鏈接記錄進行循環
- 11. 什麼是同時執行多個PHP腳本的最有效方法?
- 12. 最有效的方式來通過多個字段在Java中
- 13. 如何通過在另一個PHP腳本上調用我的PHP腳本來執行我的PHP腳本?
- 14. PHP - 有效的方式來確定最後的循環中的foreach
- 15. 通過一行電子郵件循環
- 16. 使用PHP循環數據的最有效方式
- 17. 通過搜索PDF來記錄頁碼的高效方式
- 18. 通過消除負循環來尋找最低成本循環
- 19. 腳本通過目錄中的文件循環
- 20. 在一個循環中執行帶參數的PHP腳本
- 21. 通過相同數據的列循環的最有效方式 - 無重複
- 22. 獲取一個腳本來循環通過多個變量
- 23. 通過PHP執行.sh腳本
- 24. 無法通過CURL執行php腳本
- 25. SQL Server 2008是否有更高效的方式來執行此更新循環?
- 26. PL/SQL:通過大表循環的有效方式
- 27. 通過SSH在KSH上循環的更有效方式?
- 28. 最有效的方法來做到這一點PHP腳本
- 29. Rails 3 - 通過DB記錄循環,一條記錄具有HASH
- 30. 更有效的方式來循環通過PySpark DataFrame並創建新列
在後臺運行它作爲分叉進程具有較長的最大執行時間。 – 2011-03-09 12:39:56