[英]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.