簡體   English   中英

Laravel + Beanstalkd:如何運行“queue:listen”作為服務

[英]Laravel + Beanstalkd: How to run “queue:listen” as a service

我在項目中使用Beanstalkd作為工作隊列。

現在,我的項目已經完成,我必須將其部署在VPS(生產服務器)上。

有些讓我困惑的事情! 我應該ssh到生產服務器並手動輸入php artisan queue:listen (這是垃圾)

有沒有服務器來運行queue:listen服務?

您應該使用Supervisor之類的東西在生產中運行隊列。 這將允許您在后台運行該進程,指定要處理排隊作業的工作器數,並在進程失敗時重新啟動隊列。

至於你選擇使用的隊列,這取決於你。 在過去,我已經在實例和Amazon SQS上本地安裝了Beanstalkd。 本地實例適用於基本的電子郵件發送和其他異步任務,SQS非常適用於消息量巨大且需要擴展的情況。 還有其他SaaS產品,如IronMQ,但人們在生產中遇到問題的通常原因是因為他們沒有使用Supervisor。

您可以使用apt-get安裝Supervisor。 以下配置是一個很好的起點:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/forge/app.com/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
numprocs=8
stdout_logfile=/home/user/app.com/worker.log

這將執行以下操作:

  • 為隊列工作者指定一個唯一的名稱
  • 運行php artisan queue:work命令
  • 在系統重新啟動時自動啟動隊列工作程序,並在隊列失敗時自動重新啟動它們
  • 跨八個進程運行隊列工作程序(可根據您的需要增加或減少)
  • 將任何輸出記錄到/home/user/app.com/worker.log

要啟動Supervisor,您將運行以下命令(重新讀取配置/重新啟動后):

sudo supervisorctl start laravel-worker:*

文檔為您提供了有關使用Supervisor運行Laravel隊列進程的更深入信息。

暫無
暫無

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

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