我开始看看Iron.io作为队列流程的服务。通过轻松设置laravel,我可以在几分钟内完成工作,但有些事情对我来说并不清楚。
我使用artisan命令订阅了一个名为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以满足不同的需求呢?
答案 0 :(得分:3)
您可以使用pushRaw功能
pushRaw($payload, $queue = null, array $options = array())
示例:
Queue::pushRaw("This is Hello World payload", "email");