Livewire 队列作业调度 afterRespone() 不工作
Livewire queue job dispatch afterRespone() not working
我正在尝试向同步驱动程序分派作业,并在页面呈现后 运行 将其分派。然后使用 Laravel Echo.
将状态更新发送到前端
作业 class 已创建并正在运行。
Livewire 组件正在运行。
Echo 正在工作。
我正在尝试在表单提交后从 livewire 组件调用调度。
那么 afterResponse 部分不起作用。
// This inside the livewire component
ImportJob::dispatchAfterResponse( $data );
// OR tried both
dispatch( new ImportJob( $data ) )->afterResponse();
他们都工作并开始工作他们不做的是 afterResponse 部分。
如果我将调用链接到一个不存在的方法中,它会首先呈现页面,但当然会在作业完成时抛出一个错误,指出在 null 上没有 noneExistingMethod。
ImportJob::dispatchAfterResponse( $data )->nonExistingMethod();
编辑清楚。
问题是 livewire 组件在呈现页面之前等待作业完成。
如果我打开同一个页面两次并提交一个,我可以看到状态更新一个接一个地出现,但是在提交表单的页面上,状态更新在作业完成后一次呈现。
我认为您需要在异步模式下完成作业 运行。
我有同样的问题,我使用队列解决了。
您的 livewire 组件中的类似内容将起作用:
ImportJob::dispatch( $data )->onQueue('default')
我正在尝试向同步驱动程序分派作业,并在页面呈现后 运行 将其分派。然后使用 Laravel Echo.
将状态更新发送到前端作业 class 已创建并正在运行。
Livewire 组件正在运行。
Echo 正在工作。
我正在尝试在表单提交后从 livewire 组件调用调度。
那么 afterResponse 部分不起作用。
// This inside the livewire component
ImportJob::dispatchAfterResponse( $data );
// OR tried both
dispatch( new ImportJob( $data ) )->afterResponse();
他们都工作并开始工作他们不做的是 afterResponse 部分。
如果我将调用链接到一个不存在的方法中,它会首先呈现页面,但当然会在作业完成时抛出一个错误,指出在 null 上没有 noneExistingMethod。
ImportJob::dispatchAfterResponse( $data )->nonExistingMethod();
编辑清楚。
问题是 livewire 组件在呈现页面之前等待作业完成。 如果我打开同一个页面两次并提交一个,我可以看到状态更新一个接一个地出现,但是在提交表单的页面上,状态更新在作业完成后一次呈现。
我认为您需要在异步模式下完成作业 运行。 我有同样的问题,我使用队列解决了。 您的 livewire 组件中的类似内容将起作用:
ImportJob::dispatch( $data )->onQueue('default')