代码之家  ›  专栏  ›  技术社区  ›  sandre89

Rails Net::OpenTimeout在升级到Ruby 2.5.3后过期

  •  0
  • sandre89  · 技术社区  · 7 年前

    从ruby2.3.6(我们在rails5.2.0上)将我们的产品应用程序升级到ruby2.5.3后一秒钟,我们就开始在异常监控平台上收到Net::OpenTimeout警报。

    .ruby-version 和Gemfile),这样我们就可以找出ruby版本变更的任何新问题。

    Ruby2.5.3是使用rvm安装的。

    我们使用的是Sidekiq,所以当作业失败后,它们会进入重试队列,最终会重新启动,当它们成功时。这是非常随机的,但是现在我们有将近70%的邮件发送者第一次在Sidekiq中失败,只有在第二次或第三次尝试时才会被发送。

    下面是我们的mandrill配置:

        {
            address: 'smtp.mandrillapp.com',
            authentication: :plain,
            user_name: 'ouruser@name.com',
            port: 2525,
            password: 'thisIsNotOurRealPassword',
            domain: 'ourdomain.com'
          }
    

    :问题更加严重,因为我们的应用程序使用的每个出站连接(如外部API)也会以非常随机(但频繁)的方式超时,Net::OpenTimeout执行过期。

    坏消息是,即使我们使用Ruby2.3.6重新部署,问题也不会消失。

    0 回复  |  直到 7 年前