在处理作业时合并作业(以减少对第三方服务的请求)

问题描述 投票:0回答:1

我正在使用 Laravel 构建一个具有端点

/api/keyword
的 API。客户端可以使用该 API 请求有关给定关键字的统计信息(作为查询参数提供)。这些统计数据来自第三方服务,该服务使用限制(每分钟最多 3 个请求)并且一次仅接受 100 个关键字。因此,我想通过可能组合来自多个请求(来自客户端)的关键字来减少请求(对第 3 方 API)。

我已经实现了一个名为 FetchKeywordStatistics

job
,它在 API 控制器中调度,如下所示:

FetchKeywordStatistics::dispatch($keywords); // $keywords being [Keyword, Keyword, ...]

理想情况下,我想要实现的是,当队列正在获取作业时,它会查看其他排队的作业,并可选择通过组合关键字并向第 3 方服务发出单个请求来合并这些作业。

这有可能吗?

php laravel queue jobs
1个回答
0
投票

如果有人需要它,我制作了一个去抖动和组合作业的包:zackaj/laravel-debounce

© www.soinside.com 2019 - 2024. All rights reserved.