考虑这种将任务推送到队列以运行位于同一类中的自定义处理程序方法的代码:
<?php namespace Space;
class Spaceship {
public static function cruise()
{
// Throtting in 3 seconds...
Queue::later(3, '\Space\Spaceship@throttle', $coordinates, 'queue-name');
}
public static function throttle($job, $data)
{
$job->delete();
return 'ok';
}
}
在我添加 $job->delete(); 之前这工作正常;但现在它给出了一个错误:
exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to a member function delete() on a non-object
在Laravel 4.2 文档中,没有解释为什么使用指向自定义处理程序方法的推送队列任务,您不需要使用 $job->delete() 从队列中显式删除任务?然而,这种实现是有效的,当记录 $job 参数时,它是错误的。