在Linux上使用Laravel隊列,你需要遵循以下步驟:
安裝Laravel:首先,確保你已經在Linux服務器上安裝了Laravel。如果還沒有安裝,可以參考Laravel官方文檔(https://laravel.com/docs/8.x/installation)進行安裝。
配置隊列驅動:在.env
文件中,設置QUEUE_CONNECTION
為你想要使用的隊列驅動(例如:database
、redis
、beanstalkd
等)。同時,根據所選驅動配置相應的隊列連接設置。
例如,如果你想使用Redis作為隊列驅動,你需要安裝Predis庫(composer require predis/predis
),然后在.env
文件中設置:
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
php artisan make:job
命令創建一個新的隊列工作類。例如:php artisan make:job ProcessPodcast
這將在app/Jobs
目錄下創建一個名為ProcessPodcast.php
的文件。
ProcessPodcast
類中的handle
方法里編寫你的隊列任務邏輯。例如:public function handle()
{
// 你的隊列任務邏輯
}
dispatch
函數將任務分發到隊列中。例如:dispatch(new ProcessPodcast());
php artisan queue:listen
命令啟動隊列監聽器。這將監聽隊列并處理任務。php artisan queue:listen
你還可以使用--queue
選項指定要監聽的隊列名稱,例如:
php artisan queue:listen --queue=high,default
php artisan queue:work
命令啟動一個隊列工作,它將處理隊列中的任務。例如:php artisan queue:work
同樣,你可以使用--queue
選項指定要處理的隊列名稱。
/etc/supervisor/conf.d/laravel-worker.conf
的文件,并添加以下內容:[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/your/project/artisan queue:work --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=your-user
numprocs=8
redirect_stderr=true
stdout_logfile=/path/to/your/project/storage/logs/worker.log
將/path/to/your/project
替換為你的Laravel項目路徑,將your-user
替換為運行隊列進程的用戶。
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
現在,你的Laravel應用程序已經配置好并在Linux服務器上使用隊列了。你可以根據需要調整隊列連接設置、監聽器和工作者的數量。