我開始看到Iron.io作爲我的隊列過程的服務。隨着laravel的輕鬆設置,我可以在幾分鐘內完成工作,但有些東西對我來說並不明確。Laravel 4和Iron.io多個隊列/ PHP
我訂閱一個使用工匠命令,以下稱爲resizer
新的隊列:
php artisan queue:subscribe resizer http://mywebsite.com/queue/resizer
在設置在queue.php
文件我已經給在這種情況下創建的隊列的關鍵queue
名稱resizer
'iron' => array(
'driver' => 'iron',
'host' => 'mq-aws-us-east-1.iron.io',
'token' => 'xxxxxx',
'project' => 'xxxx',
'queue' => 'resizer',
'encrypt' => true,
),
但是肯定會有其他種類的隊列。此調整器隊列負責調整圖像大小,但我將不得不另外設置一個用於發送email
或許稱爲email
。
現在我們假設我想實現email
隊列,並且還有resizer
以及我認爲只需訂閱另一個服務。
php artisan queue:subscribe email http://mywebsite.com/queue/email
我的路線:
Route::post('queue/resizer', function()
{
Queue::marshal();
});
Route::post('queue/email', function()
{
Queue::marshal();
});
問題:
當我打的路線queue/email
Iron.io火resizer
代替email
過程中添加1更多的消息,該消息隊列,因爲上我設置的設置爲resizer
。 那麼我怎麼能有不同的任務/隊列分配給Iron.io每個不同的需求?
謝謝你這樣回答,你能成爲一個更具體一點吧。我從來沒有使用過這種方法,它需要在路由上使用,而不是'Queue :: marshal()'?這個方法是什麼? – Fabrizio
'marshal'方法將負責發射正確的作業處理器類。要將作業激發到推送隊列,只需使用與傳統隊列相同的'Queue :: push'方法或'Queue :: pushRaw'將消息推送到特定隊列即可。 – freeman1988