我在我的php項目中有一些後臺任務。如果某些條件滿足,它應該做一些工作。例如:如果有一些訂單比尚未交付,並且剩餘時間估計交付時間少於15分鐘,系統會向快遞員發送通知,說明他可能已經很晚了。背景php任務,cron替代品
最簡單的解決方案 - 創建每分鐘運行php腳本的cron任務。該腳本將檢查該條件並在條件滿足時發送通知。
另一種方法是隊列。我看着gearman和rabbitmq,但正如我可以看到他們另一個用例。如果您有一些直接發送任務的客戶端,則它們很合適。在我的情況下,我沒有任何客戶,它只是系統中的一些條件。
而我想到的最後一個解決方案是編寫帶有無限循環的自定義php-daemon。在每次迭代中檢查條件,如果滿意並且睡1分鐘,則完成該工作。但有可能存在內存泄漏,守護進程重啓等問題。
那麼,這個promlem在現代php的最佳解決方案是什麼?
如果你去尋找一個PHP解決方案,我會用普通的cron任務來完成它。否則可能會有一些第三方選項,您可以在其中設置預定作業,並從中調用您的應用程序。或者只是創建一個運行在側面的小型隊列應用程序,例如使用nodejs。 – KungWaz