laravel 队列延迟

接到需求需要写一个延时队列。调查了一下laravel的延时队列,非常简单。

第一种在Job类里直接添加 public 参数。

class SaveMySQLJob extends Job
{
    public $delay = 10;
}

这种比较适合写订单,订单处理失败的时候延时执行。在这个页面修改任何数据都必须重启队列。

另一种是在new job的时候直接修改

$job = (new SaveMySQLJob($data))->onQueue($jobKey)->delay(10);
dispatch($job);

这种的好处是可以传时间参数,时时生效,我在考虑他是不是可以用作定时器,比如活动结束处理结算这样的功能。当然,如果这样的话修改结束时间需要做校验,废弃的延时消息要及时处理掉。

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页