在Laravel 5中控制排队事件的管

时间:2015-05-15 11:54:09

标签: laravel laravel-5 beanstalkd

所以我开始在L5中使用Queued Events来处理一些逻辑,我想知道在将事件推送到Beanstalkd时是否可以告诉laravel使用什么管。

我在文档中看不到任何关于它的内容。

1 个答案:

答案 0 :(得分:0)

挖掘Event Dispatcher code后。

我发现如果事件处理程序上有一个队列方法,laravel会将参数传递给该方法,并允许您手动调用push方法。

因此,如果你有一个SendEmail事件处理程序,你可以这样做:

<?php namespace App\Handlers\Events;

use App\Events\UserWasCreated;

use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldBeQueued;

class SendEmail implements ShouldBeQueued {
    use InteractsWithQueue;

    public function __construct()
    {
    }

    public function queue($queue, $job, $args)
    {
        // Manually call push
        $queue->push($job, $args, 'TubeNameHere');
        // Or pushOn
        $queue->pushOn('TubeNameHere', $job, $args);
    }

    public function handle(UserWasCreated $event)
    {
        // Handle the event here
    }
}