| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | <?phpnamespace App\Jobs;use Illuminate\Bus\Queueable;use Illuminate\Contracts\Queue\ShouldBeUnique;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Foundation\Bus\Dispatchable;use Illuminate\Queue\InteractsWithQueue;use Illuminate\Queue\SerializesModels;use App\Services\IssueService;use Illuminate\Support\Facades\Log;class FiveSecondTaskJob implements ShouldQueue{    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;     /**     * 任务尝试次数     */    public $tries = 3;    /**     * 任务超时时间(秒)     */    public $timeout = 30;    /**     * Create a new job instance.     *     * @return void     */    public function __construct()    {        //    }    /**     * Execute the job.     *     * @return void     */    public function handle()    {        try {            Log::error('🚀 开始执行5秒任务: ' . now());                                    IssueService::syncCloseIssue(); // 同步停止            // Log::error('✅ 获取到最新期号: ' . ($latestIssue ?? '无'));            // 你的业务逻辑            IssueService::getLatestIssue(); // 获取最新的期号                        // 重要:使用类名而不是 self(),避免递归            FiveSecondTaskJob::dispatch()->delay(now()->addSeconds(5));                        Log::error('📅 下一个5秒任务已安排');                    } catch (\Exception $e) {            Log::error('❌ 5秒任务执行异常: ' . $e->getMessage());                        // 异常后10秒重试            FiveSecondTaskJob::dispatch()->delay(now()->addSeconds(10));        }    }     // 可选:失败处理    public function failed(\Throwable $exception)    {        Log::error('任务失败: ' . $exception->getMessage());                // 可选:重新分发或通知        dispatch(new self())->delay(now()->addSeconds(5));    }}
 |