我有一些 rake 任务需要大约每小时运行一次,每个任务都必须联系网站、下载文件并将文件导入我的数据库。
我想知道在效率和执行速度方面最好的方法是什么。 如果我认为为每个任务制作一个线程会节省我一些时间,我是否正确?通过这样做,我应该能够最大限度地减少等待服务器响应线程中最慢的线程所花费的时间。
下载文件后,我正在考虑使用 gem "parallel"
将大型 csv 和 xml 文件中的数据导入数据库。
如果您有任何建议,请告诉我。
最佳答案
当此类文件的数量很少时,您不关心执行顺序并且可以提供一些额外的内存 - 最简单的解决方案就是通过 cron 在不同的进程中运行它们(例如 - gem 'whenever'
)。
如果还有更多 - 使用一些 http gem 进行并行下载 - typhoeus
、curb
、em-http-request
等
关于Ruby rake 任务线程优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35039068/