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 關注
- 179 瀏覽
添加回答
舉報