with(['module', 'user', 'host', 'replies'])->chunk(100, function ($workOrders) { foreach ($workOrders as $workOrder) { if ($workOrder->host->status === 'pending') { continue; } $http = Http::remote($workOrder->module->api_token, $workOrder->module->url); $workOrder->status = 'open'; $response = $http->post('work-orders', $workOrder->toArray()); if (!$response->successful()) { Log::error('推送工单失败', [ 'work_order_id' => $workOrder->id, 'response' => $response->body(), ]); $workOrder->status = 'error'; } $workOrder->save(); } }); Reply::where('is_pending', 1)->chunk(100, function ($replies) { foreach ($replies as $reply) { dispatch(new \App\Jobs\Remote\WorkOrder\Reply($reply)); } }); } }