有没有一种方法可以一次从 beanstalkd 队列中保留多个作业?
我正在向外部 API 发出请求,每个查询最多可以返回 10 个结果。它们限制了我每天可以提出的请求数量,因此每个请求获得的结果越多越好。
我在文档中找不到任何提及此功能的内容,因此我正在使用此解决方法。有谁知道实现这一目标的更好方法?还是比 beanstalkd 更适合这项工作的工具?
loop do
sleep(0.3)
while @beanstalk.tubes[example].peek(:ready)
jobs = []
catch(:done) do
10.times do |i|
if @beanstalk.tubes[example].peek(:ready) then
job = @beanstalk.tubes[example].reserve(0)
jobs << job.body
job.delete
else
throw(:done)
end
end
end
process(jobs)
end
end