ruby-on-rails - 如何在 Sidekiq 上保持长期运行的连接
问题描述
我正在抓取一个包含 1M 数据的网页。我正在使用Nokogiri
,Watir
和Sidekiq
. 这是一个长时间运行的连接,例如 5 小时。因此,我更喜欢使用排队Sidekiq
。但是,我不明白我在这里做错了什么。
我遇到的问题:
- 就像我启动一个30分钟后
job
,系统本身启动一个新的job
。两人似乎都在奔跑。什么是新的job?
它是从头开始还是仍然是第一个的一部分job?
因为我没有开始new job.
- 当我检查
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
.
有一个更好的方法吗?想法?
解决方案
推荐阅读
- node.js - ExpressJS 4.x:简单地用变量渲染 index.html(就像在 Django 中一样)
- php - 我正在尝试将数据库中的所有列打印到水平表
- python - 如何在 Python 中实现 While 循环
- jquery - 我如何从 jquery 路由到控制器 api?
- java - 条件不成立时线程唤醒的令人困惑的原因
- flutter - 我运行我的项目并收到“无法编译设置”错误
- python-3.x - 如何更改集合中的值
- android - Android数组循环仅返回最后一条记录
- python - 如何 SimpleImpute 熊猫数据框?
- c# - 实体框架不存储字节数组