Ruby-rake任务线程优化

Ruby-rake任务线程优化,ruby,multithreading,parallel-processing,rake,Ruby,Multithreading,Parallel Processing,Rake,我有一些rake任务需要大约每小时运行一次,每个任务都必须联系一个网站,下载一个文件并将文件导入我的数据库 我想知道在效率和执行速度方面最好的方法是什么。 如果我认为为每个任务制作一个线程可以节省我一些时间,那么我是对的吗?通过这样做,我应该能够将等待服务器响应的时间减少到线程中最慢的响应时间 下载完这些文件后,我考虑使用gem“parallel”将大型csv和xml文件中的数据导入数据库 如果您有任何建议,请告诉我。当此类文件数量较少时,您不关心执行顺序,并且可以提供一些额外的内存-最简单的解

我有一些rake任务需要大约每小时运行一次,每个任务都必须联系一个网站,下载一个文件并将文件导入我的数据库

我想知道在效率和执行速度方面最好的方法是什么。 如果我认为为每个任务制作一个线程可以节省我一些时间,那么我是对的吗?通过这样做,我应该能够将等待服务器响应的时间减少到线程中最慢的响应时间

下载完这些文件后,我考虑使用
gem“parallel”
将大型csv和xml文件中的数据导入数据库


如果您有任何建议,请告诉我。

当此类文件数量较少时,您不关心执行顺序,并且可以提供一些额外的内存-最简单的解决方案就是通过cron在不同的进程中运行它们(例如-
gem'where'


如果有更多-使用一些http gems进行并行下载-
typhous
curb
em http request

有多少文件?您是在一个任务中下载所有文件还是有许多任务?目前我有3个任务,3个文件要从3个不同的网站下载:每个任务都有其文件要下载和导入。即使文件很大,处理时间很长,也可以吗?对于big,我指的是需要解析并映射到模型的20k行csv文件。@Jack如果您选择单独的进程,那么没有问题,只需要关心导入是否能够并行运行。我将尝试这种方法,谢谢您的时间!