簡體   English   中英

laravel 隊列 - 同步驅動程序如何工作? 它是在單獨的進程/線程中執行還是在主執行線程中執行?

[英]laravel queues - how sync driver works? Does it executes in a separate process/thread or the main execution thread?

我正在從我的服務器發送推送通知,並希望它只是在后台進程中執行。 我已經閱讀了 Laravel 文檔,我也了解數據庫驅動程序和其他一些選項。 我已經在我的本地機器上使用了數據庫驅動程序,但有一件事困擾着我,我必須啟動一個后台線程來偵聽使用php artisan queue:listen --deamon添加到隊列中的php artisan queue:listen --deamon

關鍵是,它總是像“老太婆”任務一樣運行,消耗我的一些資源和內存。 我只想在觸發推送通知時創建一個新進程,它應該在添加后立即開始執行,然后應該關閉該進程。 另一方面,對於 Laravel 作業,我總是必須運行一個我想避免的后台進程,而且我使用的共享主機不允許我在我的服務器上安裝“主管”來監控我的作業執行。

任何人都可以清除這種歧義? 處理這種情況的更好方法是什么?

經過一番研究,我決定使用database驅動程序。 還有一些其他不錯的選擇,但選擇將取決於您的系統工作負載。

關鍵是, sync驅動程序使用主線程來執行任務,這僅在您進行開發時才有用。 如果您有一個生產系統,那么您可能需要考慮其他一些選項來運行您的隊列。 對長時間運行的任務進行排隊的主要思想是能夠在某些后台進程中執行它們,這樣您的主應用程序線程就不會阻塞,並且您可以更快地為客戶端請求提供服務。

有關不同驅動程序的更多信息和幫助,請訪問Laravel 文檔

隊列同步現在與 http 請求或線程在同一線程中運行。 Deamon 未運行,我將在本地測試中使用同步隊列,您使用 dd(),將所有數據顯示到屏幕上

暫無
暫無

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

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