【问题标题】:Sidekiq crashes every few hours in dockerSidekiq 在 docker 中每隔几个小时就会崩溃一次
【发布时间】:2023-03-28 11:42:01
【问题描述】:

我遇到了一个问题,即 sidekiq 在 docker 中每隔几个小时就会崩溃一次。当 sidekiq 尝试连接到 redis 并且重新启动容器不起作用时,调查日志会显示“TimeoutError”。我能让它再次工作的唯一方法是重新启动 docker 守护进程。

经过大量调查,我认为根本原因与 docker 中的日志记录问题没有跟上 redis 日志有关。我看到的诊断来自this post。他们的解决方案是downgrade docker,但似乎docker还没有修复到19.03.3版本,所以恢复到旧docker版本的解决方案是不可行的。

除了降级之外还有其他可能的解决方法吗?以前有人遇到过这个问题吗?有什么解决方案的建议吗?

【问题讨论】:

    标签: ruby-on-rails docker logging redis sidekiq


    【解决方案1】:

    我正在祈祷,但我认为我有一个解决方法。

    因为问题似乎与日志记录问题有关。对于 sidekiq 尝试连接的 redis 容器,直接的解决方案似乎要么禁用日志记录,要么将日志记录模式设置为“非阻塞”。

    我在下面提供了一个示例 docker-compose 文件来解释如何做到这一点:

    version: "3.7"
    services:
      ruby:
        build: .
        command: rails s
      sidekiq:
        build: .
        command: bundle exec sidekiq
      db:
        image: "postgres:11.1"
      redis:
        image: "redis:4.0"
        logging:
          mode: non-blocking
          # or
          # driver: none
    

    到目前为止,已经过去了大约 8 个小时。如果这继续顺利运行到明天,那么现在也许这是一个合理的解决方法。

    【讨论】:

      猜你喜欢
      • 2020-09-18
      • 2013-10-19
      • 1970-01-01
      • 2012-03-18
      • 2017-06-20
      • 1970-01-01
      • 2017-12-10
      • 2021-08-22
      • 1970-01-01
      相关资源
      最近更新 更多