首页 > 解决方案 > 如何在 Sidekiq 上保持长期运行的连接

问题描述

我正在抓取一个包含 1M 数据的网页。我正在使用Nokogiri,WatirSidekiq. 这是一个长时间运行的连接,例如 5 小时。因此,我更喜欢使用排队Sidekiq。但是,我不明白我在这里做错了什么。

我遇到的问题:

  1. 就像我启动一个30分钟后job,系统本身启动一个新的job。两人似乎都在奔跑。什么是新的job?它是从头开始还是仍然是第一个的一部分job?因为我没有开始new job.
  2. 当我检查sidekiq log文件时,我看到:
TID-nz9ss WARN: Redis::CannotConnectError: Error connecting to Redis on localhost:6379 (Errno::ECONNREFUSED)
WARN: /home/rails/.rvm/gems/ruby-2.6.3/gems/redis-4.1.2/lib/redis/client.rb:362:in `rescue in establish_connection'

错误之后,我有这个:

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

它是崩溃还是继续相同的过程?

我还更改了以下内容:

我做了Watir's default timeout to 300000000

我做了passenger_max_pool_size 0

我将4GB swap内存添加到我的VPS.

有一个更好的方法吗?想法?

标签: ruby-on-railsrubypassengersidekiq

解决方案


推荐阅读