Laravel 队列执行频率限制
说明:这是laravel官方提供的办法,我写出来是因为我在百度和必应都搜不到正确答案
官方文档:队列《Laravel 5.8 中文文档》laravel 5.6+
1、每分钟限制执行10次JOB(注意是JOB,而不是整个队列)
use Illuminate\Support\Facades\Redis;
Redis::throttle('key')->allow(10)->every(60)->then(function () {
// 任务逻辑...
}, function () {
// 无法获得锁...
return $this->release(10);
});
2、并发,限制同一时间只执行一个JOB
Redis::funnel('key')->limit(1)->then(function () {
// 任务逻辑...
}, function () {
// 无法获得锁...
return $this->release(10);
});
方法里的参数key
是自定义的redis key,如果需要多个job共用一个限制,则可以使用同一个key
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: