是這樣,我有一個PHP腳本,不斷地從隊列里取出任務予以處理,大致邏輯:requiredo_job.php;while(true){$job=queue_pop();//取出一個任務,阻塞調用do_job($job);//這個函數來自do_job.php}該腳本直接從命令行啟動:nohupphpmain.php&但是隨著業務的發展,我發現要處理的任務種類越來越多,所以我需要不斷地修改do_job()函數,以處理新類型的任務或更改之前的邏輯;但是每次修改這個函數,我都需要先kill掉之前的進程,然后再次執行上面的命令行,非常不方便。我想問,如何在不停止main.php進程的條件下,更新do_job.php?如果可以的話,盡量不要引入重量級的第三方框架。我知道有一種方案可行,就是每當收到任務后,創建一個php子進程,把任務通過某種進程間通信機制傳給它來處理,就像Apache服務器。但是我覺得這種方案過于重量級了,因為多數情況下do_job()函數很簡單,很快就能執行完,專門為它創建一個進程,有點“殺雞用牛刀”。謝謝!
請問PHP如何實現“代碼熱更新”
慕森卡
2019-05-07 08:50:11