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 协议》,转载必须注明作者和本文链接
请问有测试吗,
exception 'Predis\ClientException' with message 'Command 'THROTTLE' is not a registered Redis command.'
,我的报这个错,redis没有这个命令不会用呀,能写详细一些么,这就是文档上说的呀,这个代码应该在哪里写呢
收藏了,为什么我再laravel的api中没有看到这个方法呢?有没有相关文档 laravel.com/api/8.x/Illuminate/Sup...