阅读(1149) (4)

Laravel 8 延迟分发

2021-07-06 09:24:59 更新

如果你希望有条件地执行队列任务,可以在分发任务时使用 delay 方法 。例如,让我们指定调度任务在 10 分钟后他被调度后才执行,在这之前它将是无效的:

<?php

namespace AppHttpControllers;

use AppHttpControllersController;
use AppJobsProcessPodcast;
use IlluminateHttpRequest;

class PodcastController extends Controller
{
    /**
     * Store a new podcast.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        // Create podcast...

        ProcessPodcast::dispatch($podcast)
                ->delay(now()->addMinutes(10));
    }
} 

注意:亚马逊 SQS 队列服务最大延时执行时间是 15 分钟