我有一个从查询返回结果的方法。然后调用该方法的代码循环遍历每个结果并启动一个 sidekiq 工作程序。我遇到的问题是循环实际上需要相当长的时间(几乎与运行所有工作人员所需的时间相同)。这是查询:
Object.where("last_updated > ?" , 1.days.ago.midnight )
然后我执行以下操作:
objects.each { |o| o.perform_async(something) }
我试图弄清楚如何使这个过程更有效率。结果是完成此过程大约需要 10 分钟,每次启动实际上需要 20 毫秒(如果查询返回 30,000 个结果)。有什么办法可以让这更快吗?