我正在开发一个需要从第三方服务器获取数据的应用程序,并且该服务器每秒最多允许 1 个请求。
现在,所有请求都作为作业发送,我正在尝试实施 Laravel 的“速率限制”以每秒发布 1 个作业,但无法弄清楚为什么应该实施它,并且网络中没有实际示例。
有人实施了吗?
这有什么暗示吗?
我正在创建一个用于显示WooCommerce产品的过滤器小部件,然后是该类别的产品计数,当存在搜索字符串时,它也将起作用。
像,有三个类别,
现在,有人在搜索Asus,并且他们的2台笔记本电脑,4台台式机和7张桌子与Asus匹配。
现在,在侧边栏类别中将显示该类别中有多少产品符合搜索条件。
当前,我正在使用带有tax_query参数的默认WP_Query显示计数器。
但是它看起来非常慢,因为如果有50个类别,查询将运行20次。我相信有更好的方法可以做到这一点。
尝试为队列实现速率限制以每秒运行一项作业,该作业向外部 API 发出 HTTP 请求并加载一种类型的数据。
但不知道如何称呼这份工作,尝试了不同的选择但没有奏效。在示例中:
Redis::throttle('key')->allow(10)->every(60)->then(function () {
// Job logic...
}, function () {
// Could not obtain lock...
return $this->release(10);
});
Run Code Online (Sandbox Code Playgroud)
将在// Job logic...调度队列中放入什么并且此代码将在队列类中?以及如何命名key?我的队列名称是loader.
有什么帮助吗?
laravel ×2
queue ×2
laravel-5 ×1
mysql ×1
php ×1
redis ×1
throttling ×1
woocommerce ×1
wordpress ×1