[Laravel] 使用Supervisor執行Laravel的Queue Worker

更新於 2024/03/13閱讀時間約 2 分鐘
此文章同步刊登於我的部落格


在使用laravel中的Queue job的時候,除了程式本身寫好之外

伺服器環境還會需要確保Laravel的queue:work指令可以持續進行

如果中斷還可以重新啟動這個時候就會需要用到Supervisor這個工具了


一、安裝Supervisor

apt update
apt install supervisor


二、啟動Supervisor

# supervisord -c <設定檔路徑> (預設/etc/supervisor/supervisord.conf)
supervisord -c /etc/supervisor/supervisord.conf


三、建立queue worker設定檔

cd /etc/supervisor/conf.d
vim laravel-worker.conf

設定檔內容(註解要刪除)

[program:laravel-worker-my-project]
process_name=%(program_name)s_%(process_num)02d
# command=php <專案資料夾路徑>/artisan queue:work --sleep=<每次嘗試間隔> --tries=<最多嘗試次數>
command=php /var/www/my-project/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=root
numprocs=2
startsecs=0
redirect_stderr=true
# stdout_logfile=<log檔案路徑>
stdout_logfile=/var/log/supervisor/laravel-worker-my-project.log
# logfile_maxbytes=<LOG檔案上限>
logfile_maxbytes=104857600
stopwaitsecs=3600


四、載入設定檔並啟用

supervisorctl reread
supervisorctl update
supervisorctl restart laravel-worker-my-project:*


五、查看服務是否啟用

supervisorctl status


環境

  • OS: Ubuntu 18.04
avatar-img
7會員
21內容數
你可以在這裡看到後端工程師的技術文章 也可以看到一些投資相關的心得分享 歡迎交流~
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Hankz是名工程師 的其他內容
在PHP的團隊開發中,PHP CS Fixer可以確保每個開發人員的Coding Style相同,是相當重要的工具。本篇文章將會詳細說明PHP CS Fixer在Linux環境下的安裝方式。
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
本文將介紹在Windows環境中安裝Oracle Instant Client及相關PHP擴展,以進行與Oracle Database的串接。透過本文所述步驟,您將能在Windows環境中順利進行PHP與Oracle Database的串接設定。
這篇文章將會提供在伺服器上安裝憑證的步驟,包括下載憑證,設定php.ini以及重新啟動Web Server等。
Codeigniter如果不調整設定,網址中會自帶index.php,為了符合MVC架構,通常會將它去除,本文將詳細說明處理步驟。
有的時候,會希望在物件導向中對原生的Class新增功能的時候,大多我們都會寫一個新的class並繼承。 但是其實Laravel提供了一個不同的方式,讓我們可以在常用的Class上,直接新增想要的function,那就是macro。
在PHP的團隊開發中,PHP CS Fixer可以確保每個開發人員的Coding Style相同,是相當重要的工具。本篇文章將會詳細說明PHP CS Fixer在Linux環境下的安裝方式。
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
本文將介紹在Windows環境中安裝Oracle Instant Client及相關PHP擴展,以進行與Oracle Database的串接。透過本文所述步驟,您將能在Windows環境中順利進行PHP與Oracle Database的串接設定。
這篇文章將會提供在伺服器上安裝憑證的步驟,包括下載憑證,設定php.ini以及重新啟動Web Server等。
Codeigniter如果不調整設定,網址中會自帶index.php,為了符合MVC架構,通常會將它去除,本文將詳細說明處理步驟。
有的時候,會希望在物件導向中對原生的Class新增功能的時候,大多我們都會寫一個新的class並繼承。 但是其實Laravel提供了一個不同的方式,讓我們可以在常用的Class上,直接新增想要的function,那就是macro。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
為了做登入log紀錄,練習mongoDB來存放log資料,這邊就來紀錄 Laravel 配置mongoDB的實作,而原本我的side project是練習搭建docker開發環境,故這邊會以dockerfile來設定跟紀錄踩坑問題。
Thumbnail
本篇文章為Laravel初學者提供了一個指南,深入探討了Laravel的routes目錄下的功能。文章詳細描述了web.php和api.php的差異和使用情境,並簡要介紹了console.php和channels.php的功能。透過這篇文章,讀者可以更好地理解和利用Laravel的路由功能。
Thumbnail
本篇深入探討了Model的基本定義、其Controller的關係,以及如何在Controller中使用Model進行CRUD操作。強調了Model的關聯方法,如hasMany,並透過範例程式碼展示了其實際應用。為初學者提供了一個清晰的Laravel入門路徑,同時也為有經驗的開發者提供了實用的參考。
Thumbnail
Laravel的Model是資料和邏輯的核心連接,簡化資料庫操作。本指南著重於Model的基本屬性、方法和Eloquent ORM的使用。我們詳細探討了hasMany、hasOne和belongsTo這些關聯,它們基於外鍵確定資料間的關係。透過本文,您將深入了解如何有效地在Laravel中使用Mod
Thumbnail
1. 使用composer安裝 2. publish the configuration 在config資料夾中會多出一個google-calendar.php 3. 取得Google API credentials (1) 到Google Cloud Platform頁面,選擇專案。 後記:
Thumbnail
欲在Laravel中使用MongoDB,首先要確認有安裝MongoDB PHP driver,接著再安裝Laravel MongoDB套件,才能開始使用CRUD。 1. 安裝MongoDB PHP driver (1) 到這邊下載MongoDB PHP driver (3) 檢查是否正常 後記:
Thumbnail
Swoole是一個使用C語言寫出來的PHP extension,本篇筆記了如何使用Laravel+Swoole來打造websocket應用,包含從伺服器安裝到基本範例程式,有websocket基本觀念後,再花點時間,就能把程式改成多人聊天室或私頻聊天等應用了。 Requirement 安裝PHP:
Thumbnail
當伺服器需要處理一些比較花時間的任務時(如發送Email、上傳影片等等),讓user等待直到執行完畢,是個很不明智的選擇,這時候就很適合使用Queue,讓工作在背景執行,使用者就能立刻做下一件事,不必在那邊等待。 .env: QUEUE_CONNECTION預設是sync 改成database:
Thumbnail
對於使用Laravel來講,可以直接用composer來安裝predis,可以說是相當方便: config/database.php: redis預設有16個資料庫,這邊是各個資料庫的連接設定。 要使用predis,要記得把env file中的REDIS_CLIENT改成predis。 .env:
Thumbnail
Environment: GCP Linux version: CentOS 7 Laradock的初衷原是為了將Laravel環境容器化,但隨著時間的演進,慢慢包含了各種常用的工具了,如php-fpm, apache, nginx, mysql, phpmyadmin, redis等等這些常用的東
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
為了做登入log紀錄,練習mongoDB來存放log資料,這邊就來紀錄 Laravel 配置mongoDB的實作,而原本我的side project是練習搭建docker開發環境,故這邊會以dockerfile來設定跟紀錄踩坑問題。
Thumbnail
本篇文章為Laravel初學者提供了一個指南,深入探討了Laravel的routes目錄下的功能。文章詳細描述了web.php和api.php的差異和使用情境,並簡要介紹了console.php和channels.php的功能。透過這篇文章,讀者可以更好地理解和利用Laravel的路由功能。
Thumbnail
本篇深入探討了Model的基本定義、其Controller的關係,以及如何在Controller中使用Model進行CRUD操作。強調了Model的關聯方法,如hasMany,並透過範例程式碼展示了其實際應用。為初學者提供了一個清晰的Laravel入門路徑,同時也為有經驗的開發者提供了實用的參考。
Thumbnail
Laravel的Model是資料和邏輯的核心連接,簡化資料庫操作。本指南著重於Model的基本屬性、方法和Eloquent ORM的使用。我們詳細探討了hasMany、hasOne和belongsTo這些關聯,它們基於外鍵確定資料間的關係。透過本文,您將深入了解如何有效地在Laravel中使用Mod
Thumbnail
1. 使用composer安裝 2. publish the configuration 在config資料夾中會多出一個google-calendar.php 3. 取得Google API credentials (1) 到Google Cloud Platform頁面,選擇專案。 後記:
Thumbnail
欲在Laravel中使用MongoDB,首先要確認有安裝MongoDB PHP driver,接著再安裝Laravel MongoDB套件,才能開始使用CRUD。 1. 安裝MongoDB PHP driver (1) 到這邊下載MongoDB PHP driver (3) 檢查是否正常 後記:
Thumbnail
Swoole是一個使用C語言寫出來的PHP extension,本篇筆記了如何使用Laravel+Swoole來打造websocket應用,包含從伺服器安裝到基本範例程式,有websocket基本觀念後,再花點時間,就能把程式改成多人聊天室或私頻聊天等應用了。 Requirement 安裝PHP:
Thumbnail
當伺服器需要處理一些比較花時間的任務時(如發送Email、上傳影片等等),讓user等待直到執行完畢,是個很不明智的選擇,這時候就很適合使用Queue,讓工作在背景執行,使用者就能立刻做下一件事,不必在那邊等待。 .env: QUEUE_CONNECTION預設是sync 改成database:
Thumbnail
對於使用Laravel來講,可以直接用composer來安裝predis,可以說是相當方便: config/database.php: redis預設有16個資料庫,這邊是各個資料庫的連接設定。 要使用predis,要記得把env file中的REDIS_CLIENT改成predis。 .env:
Thumbnail
Environment: GCP Linux version: CentOS 7 Laradock的初衷原是為了將Laravel環境容器化,但隨著時間的演進,慢慢包含了各種常用的工具了,如php-fpm, apache, nginx, mysql, phpmyadmin, redis等等這些常用的東