Ruby on rails 如何在Sidekiq上保持长期运行的连接
我正在抓取一个包含1M数据的网页。我使用的是Ruby on rails 如何在Sidekiq上保持长期运行的连接,ruby-on-rails,ruby,passenger,sidekiq,Ruby On Rails,Ruby,Passenger,Sidekiq,我正在抓取一个包含1M数据的网页。我使用的是Nokogiri、Watir和Sidekiq。这是一个长时间运行的连接,大约5个小时。因此,我更喜欢使用Sidekiq排队。 然而,我不明白我在这里做错了什么 我的问题是: 在我启动作业30分钟后,系统本身启动一个新的作业。他们俩似乎都在跑步。那是一份新的工作吗?是从头开始的新工作还是第一份工作的一部分?因为我没有开始一份新工作。 当我检查sidekiqlog文件时,我看到: 在错误发生后,我有以下信息: Redis is online, 3.0729
Nokogiri
、Watir
和Sidekiq
。这是一个长时间运行的连接,大约5个小时。因此,我更喜欢使用Sidekiq
排队。
然而,我不明白我在这里做错了什么
我的问题是:
作业
30分钟后,系统本身启动一个新的作业
。他们俩似乎都在跑步。那是一份新的工作吗?
是从头开始的新工作还是第一份工作的一部分?
因为我没有开始一份新工作。
sidekiq
log
文件时,我看到:Redis is online, 3.072998513991479 sec downtime
TID-nz91k INFO: Redis is online, 3.07191184500698 sec downtime
TID-nz9ss INFO: Redis is online, 3.071773702016799 sec downtime
它是崩溃还是继续同样的过程
我还更改了以下内容:
我将瓦蒂尔的默认超时设置为300000000
我将乘客\u最大\u池大小设置为0
我在我的VPS
中添加了4GB交换
内存
有更好的方法吗?想法?检查您的redis是以6379端口的形式启动的。您说它正在运行作业,然后开始运行另一个作业——您是否检查了它们是否是相同的作业?查看日志,您将看到类似于JID-3c3b6fdcfcd1083595a4756b INFO:start的内容
JID xxx
是存储在Redis中的作业的作业id,因此,如果在30分钟后第二个作业开始时看到同一行,那么您肯定知道它是同一个作业运行了两次。JID是不同的。但我没有任何行动开始另一份工作。我发现我的chromedriver
在一段时间后崩溃了。但我仍然不明白这是否与连接问题或重新启动有关?检查您的Redis是否已启动,因为6379端口正在启动。您说它正在运行作业,然后开始运行另一个作业--您是否检查了它们是否是同一个作业?查看日志,您将看到类似于JID-3c3b6fdcfcd1083595a4756b INFO:start的内容JID xxx
是存储在Redis中的作业的作业id,因此,如果在30分钟后第二个作业开始时看到同一行,那么您肯定知道它是同一个作业运行了两次。JID是不同的。但我没有任何行动开始另一份工作。我发现我的chromedriver
在一段时间后崩溃了。但我仍然不明白这是否与连接问题或重启有关?
Redis is online, 3.072998513991479 sec downtime
TID-nz91k INFO: Redis is online, 3.07191184500698 sec downtime
TID-nz9ss INFO: Redis is online, 3.071773702016799 sec downtime