所以我开始在L5中使用Queued Events来处理一些逻辑,我想知道在将事件推送到Beanstalkd时是否可以告诉laravel使用什么管。
我在文档中看不到任何关于它的内容。
答案 0 :(得分:0)
我发现如果事件处理程序上有一个队列方法,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
}
}