before
我知道您可以使用,after
和failing
钩子来收听工作事件:
https://laravel.com/docs/5.6/queues#job-events
Queue::before(function (JobProcessing $event) {
// $event->connectionName
// $event->job
// $event->job->payload()
});
不过,我只想在这里接某些工作。这些作业是从某个名为AbstractTask
. 通常我会简单地执行一个instanceof
检查,但这样的事情是行不通的:
$job instanceof AbstractTask
有什么方法可以标记这些工作事件将接手的工作?
编辑
似乎我想要的实际工作(这是我自己的工作类)可以在$event->job
类似的地方找到:
$payload = json_decode($job->getRawBody());
$data = unserialize($payload->data->command);
if ($data instanceof AbstractTask) {
dd($data);
}
我很难相信没有更简单的方法来获取实际正在处理的底层作业,所以我也提出了一个 Github 问题: