ruby-on-rails - Sidekiq 无法连接数据库?

标签 ruby-on-rails centos sidekiq hosts-file

我在/etc/hosts 文件中将“mariadb”设置为 127.0.0.1,sidekiq 偶尔会抛出以下错误:

Mysql2::Error::ConnectionError: Unknown MySQL server host 'mariadb' (16)

虚拟机没有承受很大的负载或类似的情况。

稍后编辑:似乎其他 gem 也无法解析主机:
WARN -- : Unable to record event with remote Sentry server (Errno::EBUSY - Failed to open TCP connection to XXXX.ingest.sentry.io:443 (Device or resource busy - getaddrinfo)):

任何人都知道为什么会发生这种情况?

最佳答案

几周前我已经想通了,但想在发布答案之前确定一下。
我仍然无法弄清楚这个问题的机制,但它是由 fail2ban 引起的。
我让它在一个容器中运行,轮询 httpd 日志并阻止大量爬取我的网站的机器人。
我还增加了最大文件处理程序和 inotify 处理程序。

fs.file-max = 131070
fs.inotify.max_user_watches = 65536
一旦我摆脱了fail2ban并增加了inotify处理程序,错误就消失了。
显然,fail2ban 正因此而被列入“请勿触摸”列表,我们在应用层推出了一个 404/403/500 处理程序,将未知 IP 推送到 Cloudflare。
尽管这可能是一个边缘案例,但我将其留在这里,希望它在某些时候对某人有所帮助。

关于ruby-on-rails - Sidekiq 无法连接数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61918126/

相关文章:

ruby-on-rails - rename_column 是否负责索引?

ruby-on-rails - 如何在Rails 5中的RSpec中期待Params哈希?

linux - systemctl start httpd 命令未失败并显示错误代码

ruby-on-rails - Sidekiq 和 rails 4 actionmailer 从不发送电子邮件

ruby-on-rails-4 - Sidekiq worker 未定义的局部变量或方法

ruby-on-rails - 我可以从刚刚定义的模型代码中调用命名范围吗?

amazon-web-services - 当我停止并启动一个 ec2 cent os 实例时,我会丢失哪些数据

redis服务器自动重启

ruby-on-rails - 停止 Sidekiq 重复作业

ruby-on-rails - Rails/Devise - 我应该用 devise 和 rspec 测试什么?