隊列(Queue)

這裏會介紹一些 Laravel 5 使用隊列(Queue)的方法

Laravel 隊列的設定檔在 config/queue.php,在這裡你可以設定你想要用什麼樣的隊列(Queue)服務去執行你的隊列,而 Laravel 預設有支援 database、BeanstalkdIronMQAmazon SQSRedis 這幾種隊列的服務。

我們通常會將一些需要花比較久時間處理的工作丟給隊列去背景執行,讓使用者能夠快速的的到網站的回應,像是我們在寄送帳號認證信件時,因為透過郵件伺服器去寄送可能會花費比較久的時間,所以我們會將這類的工作丟到隊列去執行,所以使用者的認證信件就會延遲的發送到他們的信箱,但是使用者在瀏覽網站時卻可以有更好的體驗!

指令

在使用 Queue 去幫我們做工作的時候,我們在系統背景需要執行傾聽 Queue 是否有工作的指令,像是 php artisan queue:listen,這樣 Queue 中有新工作需要做,才能夠正常的去執行。

$ php artisan queue:listen

執行 Queue 指令有一些相關的參數,可以依照自己的環境去調校

$php artisan queue:listen [--queue[="..."]] [--delay[="..."]] [--memory[="..."]] [--timeout[="..."]] [--sleep[="..."]] [--tries[="...”]]
參數 說明 指令
queue 設定優先執行的工作順序 php artisan queue:listen --queue=high,low
delay 在執行的工作發生錯誤時,要延遲多久重新執行(單位:秒),預設 0 秒 php artisan queue:listen --delay=10
memory 執行工作最多能夠使用的記憶體上限(單位:MB),預設 128 MB php artisan queue:listen --memory=1024
timeout 執行的工作做長執行的時間是多長(單位:秒),預設 60 秒 php artisan queue:listen --timeout=3600
sleep 在沒有找到可以做的工作時,需要間隔多少秒再去檢查有無新的工作(單位:秒),預設 3 秒 php artisan queue:listen --sleep=10
tries 工作執行失敗時,最多重新嘗試執行幾次(單位:次數),預設 0,不重新嘗試 php artisan queue:listen --tries=3

KeJyun 最新新書推薦
Laravel 5 for beginner 新手道場:優雅運用框架快速開發 PHP 網站
Laravel框架开发详解:从零基础到运用框架快速开发PHP网站

Laravel 是 PHP 的框架(Framework),提供了很多開發網站或 API 所需的工具及環境,經過簡單的設定就可以完成資料的處理及顯示,使開發者可以很優雅且快速的開發出各個不同的產品。本書適合有 PHP 基礎的人,但不知道要怎麼選擇框架,或者不用框架的人也能夠明白它的好處。

雖然 WordPress 也能夠架站,但如果有客製化需求,要開發各式各樣的網站,或提供 App 使用的 API,如此一來你只能選擇用框架,而 Laravel 是目前最受歡迎的。

本書將解說為什麼要使用框架,以及理解框架的優缺點後,要怎麼選擇框架,並用框架快速建構一個網站。除非必要,否則書中會避免專業技術用語,盡量使用最生活化易懂的例子及語氣,讓大家更容易進入 Laravel 的世界。

購書連結

購書連結

results matching ""

    No results matching ""