1 回答
TA贡献1880条经验 获得超4个赞
您可以通过在作业类上调用静态方法并将作业的构造函数参数传递给该方法来分派作业,如下所示:dispatchdispatch
ReProcessShipment::dispatch($single_data->request_data)->delay(2);
确保您使用Illuminate\Foundation\Bus\Dispatchabletrait 能够调用dispatch作业类,例如:
use Illuminate\Foundation\Bus\Dispatchable;
class ProcessPodcast implements ShouldQueue
{
use Dispatchable, ...
如果您查看源代码,您会发现静态dispatch函数使用作业的参数为您创建作业,因此您无需在调度作业之前创建作业。这是dispatch函数的来源:
public static function dispatch()
{
return new PendingDispatch(new static(...func_get_args()));
}
所以它本质上改变了这个:
ReProcessShipment::dispatch($single_data->request_data);
进入这个:
new PendingDispatch(new ReProcessShipment($single_data->request_data));
- 1 回答
- 0 关注
- 191 浏览
添加回答
举报
