delete(); return; } $success = false; if ($scope === 'message') { $success = WechatMediaArchiveService::archiveMessageById($id); } elseif ($scope === 'moment') { $success = WechatMediaArchiveService::archiveMomentById($id); } if ($success || $job->attempts() >= 3) { $job->delete(); return; } $job->release(Config::get('queue.failed_delay', 10)); } catch (\Exception $e) { Log::error('媒体资源归档任务失败:' . $e->getMessage(), $data ?: []); if ($job->attempts() >= 3) { $job->delete(); } else { $job->release(Config::get('queue.failed_delay', 10)); } } } public static function dispatch($scope, $id, array $extra = []) { $payload = array_merge($extra, [ 'scope' => $scope, 'id' => (int)$id, ]); return Queue::push(self::class, $payload, self::QUEUE_NAME); } }