我有幾個腳本需要同時作爲單獨的進程運行。我的計劃是有一個cron作業,以設定的時間間隔執行這些腳本的多個實例。這是一個好主意嗎?這種方法有什麼優點/缺點?我還需要考慮其他選擇嗎?底線:我試圖模仿多線程。任何競賽條件都將通過代碼處理(例如,在數據庫中設置狀態等)。腳本應該執行處理密集型任務(例如創建縮略圖等)。通過Cron的PHP併發性
5
A
回答
5
您可以使用分叉。啓動腳本會加載所有的默認配置和初始化,然後fork子進程來完成處理。然後它可以監視進程,看看它們是否仍在運行。 http://php.net/manual/en/function.pcntl-fork.php
0
不是PHP有fork()
?雖然這不是真正的多線程,但它是共同例程的基本方式。
2
那麼,如果你需要它作爲一個cronjob,繼續。如果你想要多個進程,你很可能想用pcntl_fork來創建同一個腳本的多個實例。
1
根據您想要對這些作業做出反應的速度有多快,並且如果您要執行處理器密集型任務,則還可以使用排隊系統分散處理。如果您有多個內核/處理器,請檢查每個機器有多個工作人員的Gearman或beanstalkd。
0
使用cron的一個問題是,它將按照設置的間隔執行腳本的副本,而不管已經運行了多少個腳本進程。這意味着腳本需要相互通信的方式,以便最多N個腳本可以同時運行(多餘腳本可以立即退出)。
cron的替代方案可能是supervisord,它將執行可配置數量的腳本並監視每個腳本,以便任何退出都重新生成。
相關問題
- 1. 在cron中處理併發性php
- 2. php mysql通過cron更新
- 3. 通過cron發佈到facebook
- 4. 通過PHP的PHP cron檢測?
- 5. PHP的 - 創建由通過cron
- 6. 通過cron
- 7. 通過cron
- 8. 焦油錯誤:通過cron/PHP
- 9. 通過cron執行外部php
- 10. 運行PHP通過cron作業
- 11. 如何通過php腳本設置cron?
- 12. 通過cron作業發送電子郵件PHP在CENTOS 6.5
- 13. 如何讓cron作業通過PHP腳本發佈到網址?
- 14. 如何通過cron作業發送電子郵件php mysql
- 15. Cron每分鐘通過CURL觸發url
- 16. Facebook - 通過cron在牆上發帖
- 17. 通過併發提高仿真性能
- 18. jQuery發佈JSON並通過PHP解碼
- 19. 參數通過cron
- 20. 通過cron推git
- 21. PHP - 通過顯性
- 22. 通過POST發送的PHP未通過PHP發送
- 23. 通過Ajax構建併發送PHP數組到JS通過
- 24. magento 1.9.1通過cron發送的發票郵件?
- 25. 發送通過PHP
- 26. 用PHP觸發一個cron
- 27. 音頻通過Cron作業
- 28. 開始通過Cron命名?
- 29. 軌道通過cron作業
- 30. CloudKit通過cron作業發送推送通知?