我正在使用 Laravel 构建一个具有端点
/api/keyword
的 API。客户端可以使用该 API 请求有关给定关键字的统计信息(作为查询参数提供)。这些统计数据来自第三方服务,该服务使用限制(每分钟最多 3 个请求)并且一次仅接受 100 个关键字。因此,我想通过可能组合来自多个请求(来自客户端)的关键字来减少请求(对第 3 方 API)。
我已经实现了一个名为 FetchKeywordStatistics
的
job,它在 API 控制器中调度,如下所示:
FetchKeywordStatistics::dispatch($keywords); // $keywords being [Keyword, Keyword, ...]
理想情况下,我想要实现的是,当队列正在获取作业时,它会查看其他排队的作业,并可选择通过组合关键字并向第 3 方服务发出单个请求来合并这些作业。
这有可能吗?
如果有人需要它,我制作了一个去抖动和组合作业的包:zackaj/laravel-debounce