《PHP實例:PHP框架Laravel中實現supervisor執行異步進程的方法》要點:
本文介紹了PHP實例:PHP框架Laravel中實現supervisor執行異步進程的方法,希望對您有用。如果有疑問,可以聯系我們。
問題描述PHP學習
大家在使用Laravel框架實現動態網頁時,若有些操作計算量較大,為了不影響用戶體驗,往往需要使用異步方式去處理.這里使用supervisor和laravel自帶的queues實現.下面來看看詳細的介紹:PHP學習
Supervisor PHP學習
Supervisor (http://supervisord.org) 是一個用 Python 寫的進程管理工具,可以很方便的用來啟動、重啟、關閉進程(不僅僅是 Python 進程).除了對單個進程的控制,還可以同時啟動、關閉多個進程,比如很不幸的服務器出問題導致所有應用程序都被殺死,此時可以用 supervisor 同時啟動所有應用程序而不是一個一個地敲命令啟動.
PHP學習
方法如下PHP學習
1. 安裝supervisorPHP學習
apt-get install supervisor
安裝完后重啟supervisor:service supervisor restart
PHP學習
2. 配置supervisor文件PHP學習
[program:laravel] process_name=%(program_name)s_%(process_num)02d command=php {{ app.root }}/artisan queue:listen autostart=true autorestart=true user=www-data numprocs=1 redirect_stderr=true stdout_logfile={{ app.root }}/storage/logs/queque.log
這里配置了supervisor管理的進程指令,用于啟動laravel隊列的監聽.同時指定了進程數和錯誤日志地址.PHP學習
3. queue配置
PHP學習
編寫隊列代碼之前,需要配置queue,其配置位置在config/queue.PHP中,在這里你需要配置你的隊列驅動器,例如數據庫、Redis、同步等.不同的選擇都有相應的配置.我這里選擇redis進行配置.PHP學習
例如:PHP學習
'redis' => [ 'driver' => 'redis', 'connection' => env('QUEUE_CONNECTION', 'default'), 'queue' => 'wordtohtml', 'expire' => 600, ],
4. 編寫異步程序
PHP學習
異步成程序在app/job目錄下編寫,新建一個自己的類,例如:Shutdown,編寫類的構造函數和handle函數.handle函數中是程序計算過程.
PHP學習
5. 執行異步函數PHP學習
$this->dispatch(new Shutdown($vimd));
使用這一條指令就可以創建一個異步程序.PHP學習
總結PHP學習
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對維易PHP的支持.PHP學習