Google对读写次数的限制为15000 / min。为了保持在这个限制之下,我计算了15000 / min == 250 / sec,所以我的队列配置是:
name: mapreduce-queue
rate: 200/s
max_concurrent_requests: 200
我可以在queue.yaml中直接设置15000 / min的速率吗?我使用200 / s因为15000 / min == 250 /秒调整突发。另外,我觉得我根本不需要max_concurrent_requests限制?
答案 0 :(得分:1)
是的,你可以。
但是,请使用15000/m
代替15000/min
来自the docs
率(仅推送队列)
在此队列上处理任务的频率。该值是一个数字 然后是斜线和单位时间,单位为s 秒, m表示分钟,h表示小时,d表示天数。例如, 值5 / m表示任务将以每次5次的速率处理 分钟。
如果数字为0(例如0 / s),则队列被视为"暂停," 并且没有处理任务。
和
max_concurrent_requests(仅推送队列)
设置在任何给定时可以执行的最大任务数 指定队列中的时间。该值是整数。默认情况下,这个 指令未设置且最大数量没有限制 并发任务。 该指令的一个用途是防止太多 一次运行或防止数据存储争用的任务。
限制最大并发任务数会为您提供更多 控制队列的执行速度。例如,你可以 约束正在运行队列任务的实例数。 允许您限制给定队列中的并发请求数 使资源可用于其他队列或在线处理。
在我看来,对于你的情况,max_concurrent_requests
是你不想遗漏的东西