Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 向远程MySQL提供数据的模式_Ruby On Rails_Ruby_Design Patterns - Fatal编程技术网

Ruby on rails 向远程MySQL提供数据的模式

Ruby on rails 向远程MySQL提供数据的模式,ruby-on-rails,ruby,design-patterns,Ruby On Rails,Ruby,Design Patterns,我想听听社区对以下问题的看法 我有一个“无所不能”的服务器,它是webserver、mysql和crawlers服务器。从两三个星期以来,使用监控工具,我发现当我的爬虫程序运行时,我的平均负载总是超过5(一个4核服务器,在4.00之前都可以作为负载)。所以,我有另一个服务器,我想把我的爬虫移到那里。我的问题是。一旦我在我的爬虫服务器中抓取了数据,我就必须插入我的数据库。我不想打开远程连接并将其插入数据库,因为我更喜欢使用Rails框架,顺便说一句,我正在使用Rails,以便更容易地创建所有关系,

我想听听社区对以下问题的看法

我有一个“无所不能”的服务器,它是webserver、mysql和crawlers服务器。从两三个星期以来,使用监控工具,我发现当我的爬虫程序运行时,我的平均负载总是超过5(一个4核服务器,在4.00之前都可以作为负载)。所以,我有另一个服务器,我想把我的爬虫移到那里。我的问题是。一旦我在我的爬虫服务器中抓取了数据,我就必须插入我的数据库。我不想打开远程连接并将其插入数据库,因为我更喜欢使用Rails框架,顺便说一句,我正在使用Rails,以便更容易地创建所有关系,等等

需要解决的问题:

服务器,具有爬网数据(一堆csv文件),我想将其移动到远程服务器,并使用rails将其插入数据库

限制:我不想运行mysql(slave+master),因为它需要更深入的分析才能知道在哪里会发生更多的写操作

想法:

  • 使用(ssh、rsync)将CSV从爬虫程序中移出服务器,并在白天导入

  • 在爬虫服务器中编写API,我的远程服务器可以拉(一天多次)并导入数据


围绕这个主题还有其他想法或好模式吗?

与您注意到的第二种模式略有不同,您可以在web应用服务器/db服务器中使用API。爬虫将使用它在其数据中报告。他可以成批、实时或只在特定的时间窗口(白天/夜间…等)完成这项工作

此模式将让爬虫决定何时报告数据。而不是让web应用程序对数据进行“轮询”