與crontab執行後臺任務的方式相比,在php上編寫一個守護進程(它監聽/處理隊列)是否如此耗費內存?Memcacheq vs cronjob在內存消耗方面
我在一臺服務器下有一個〜600個商店。有些任務店主運行需要很多時間,所以分叉它們是合理的。把任務放到cron中效果很好,我只是不喜歡延遲59秒(限制cron)。所以我想嘗試隊列系統。我只是害怕它會迫使我運行600個PHP線程來監聽/處理這些隊列(商店來自不同的客戶,我無法制作一個通用的守護進程)。它不會自動需要大約600-1000MB的內存,與cron相比,它不是一個好的選擇(只有在計劃時才加載進程)。
感謝你們讓我清醒:)好吧,「at」對我來說是新東西,而我曾經使用過「nohup」。在這種情況下,「nohup」有什麼不同?因爲exec(「nohup php mytask.php」)看起來比exec更簡單(「echo'php mytask.php'| at now」); – 2012-02-05 19:50:42
nohup表示當用戶運行註銷時,該進程不會被終止;它本身並不足以解決你的問題,但如果你添加一個&符號(使nohup任務在後臺運行),它可能會工作。所以這會讓你'exec(「nohup php mytask.php&」) 另請參閱:http://en.wikipedia.org/wiki/Nohup – Daan 2012-02-05 20:16:47
謝謝大安,我忘了添加&,是那些命令現在相當於? – 2012-02-06 06:49:41