簡體   English   中英

卷曲替代Cron Job PHP

[英]Curl alternative to Cron Job PHP

我目前正在使用以下php exec命令在服務器端加載URL,因為我需要一個不涉及cron作業的解決方案,這也是異步的,即一旦任務啟動,用戶就可以從頁面導航並且任務仍將執行:

exec("nohup curl ".$dbupdateurl." > /dev/null 2>&1 & echo $!");

這在大多數情況下工作正常,但是相當不可預測。 是否有更好/更可靠的方法來實現這一目標?

謝謝,

馬特

如果您使用的是PHP-FPM,則可以使用fastcgi_finish_request

此函數將所有響應數據刷新到客戶端並完成請求。 這允許執行耗時的任務而不會斷開與客戶端的連接。

這樣,您可以使用PHP的本機函數在用戶獲得響應后執行webrequest。 有關如何使用此函數的示例可以在如何使用fastcgi_finish_request()的示例中找到

如果您不使用PHP-FPM ,可以使用像Gearman這樣的JobQueue來完成原始請求之外的工作。 這可能是最可靠的方式,因為它是處理這類工作的專用系統。

另請注意, curl可以執行異步http請求 如果問題是您不想等待http響應,這可能比引入JobQueue更容易。

最后但並非最不重要的是,您可以分叉額外的PHP進程來完成工作。 請參閱向客戶端發送響應執行后台進程 后,如何執行耗時的任務

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM