今天下午,我一直在试着把头发弄脏,试图找工作。无论发生什么事,我都无法获得链式工作。第一个总是运行并成功但链接将永远不会运行。
例如,我有一个事件监听器
class PersistPreviousStatement implements ShouldQueue
{
/**
* @param StatementCreated $event
*/
public function handle(StatementCreated $event): void
{
DoOneThing::withChain([
new DoSomething()
])->dispatch();
}
}
我的两个工作类如下:
class DoOneThing
{
use Dispatchable, Queueable;
public function handle(): void
{
$statement = Statement::find(20);
$statement->file = 'yyy';
$statement->save();
}
}
class DoSomething
{
use Dispatchable, Queueable;
public function handle(): void
{
$statement = Statement::find(10);
$statement->file = 'xxxx';
$statement->save();
}
}
在上面的情况。我的DoOneThing类使用'yyy'正确设置记录,但DoSomething类不运行。如果我改变顺序就好
DoSomething::withChain([
new DoOneThing()
])->dispatch();
DoSomething不是DoOnething。我将两个作业设置为可排队/ Dispatchable,我的驱动程序设置为同步。我也可以独立地派遣工作,如:
DoSomething :: dispatch()DoOneThing :: dispatch()
两者都会运行。
有任何想法吗?
我在工作中缺少InteractsWithQueue特质。