Laravel 8 延迟分发
如果你希望有条件地执行队列任务,可以在分发任务时使用 delay
方法 。例如,让我们指定调度任务在 10 分钟后他被调度后才执行,在这之前它将是无效的:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Jobs\ProcessPodcast;
use Illuminate\Http\Request;
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 分钟