Ruby on rails 以睡眠延迟执行循环n次
我正在调用的API的速率限制为每分钟200个请求。我有大约1500个(对话)线程,我正在尝试最初拉,因此尝试在循环中迭代150次,然后休眠90秒 此循环用于创建CSV文件:Ruby on rails 以睡眠延迟执行循环n次,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在调用的API的速率限制为每分钟200个请求。我有大约1500个(对话)线程,我正在尝试最初拉,因此尝试在循环中迭代150次,然后休眠90秒 此循环用于创建CSV文件: conversations.each do |conversation| customer = conversation.customer threaded_conversation = helpscout.conversation(conversation.id) sleep(0.4) end 我
conversations.each do |conversation|
customer = conversation.customer
threaded_conversation = helpscout.conversation(conversation.id)
sleep(0.4)
end
我试过使用次
,但我觉得有一个更好的解决方案,我不知道
150.times do
# above loop
end
您可以跟踪迭代次数,如果是150的倍数,则可以休眠:
conversations.each.with_index do |conversation, index|
customer = conversation.customer
threaded_conversation = helpscout.conversation(conversation.id)
if index % 150 == 0
sleep 90
end
end
你为什么会有这种感觉?如果你有一个特定的迭代次数,
次
就是正确的选择。“尝试在循环中迭代150次”——你可能不想把所有1500个线程都拉150次,那么这意味着什么呢?您想处理150个项目的批处理还是10个项目(1500/150)?“每分钟200个请求的速率限制”-为什么您想在150次迭代后休眠90秒,而不是每200次迭代休眠60秒?什么是sleep(0.4)
?@Stefan,以防实际支持票证也被计入该限制,并防止有人在我提取结果时提交内容。