Laravel 4和Iron.io多个队列/ PHP

时间:2014-07-08 22:15:20

标签: laravel laravel-4 queue iron.io

我开始看看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以满足不同的需求呢?

1 个答案:

答案 0 :(得分:3)

您可以使用pushRaw功能

pushRaw($payload, $queue = null, array $options = array())

示例:

Queue::pushRaw("This is Hello World payload", "email");