【问题标题】:Redis keeps calling out to localhost:6379 even though deployed to Heroku即使部署到 Heroku,Redis 仍不断调用 localhost:6379
【发布时间】:2017-07-22 04:37:09
【问题描述】:

我有一个 Rails 应用程序部署到 Heroku,但我一辈子都想不通为什么它一直想部署到本地。我的前端代码(react native)或后端(即我的 Rails API)中的任何地方都没有 localhost:6379。

这是我在有新广播时遇到的错误:

Completed 500 Internal Server Error in 111ms (ActiveRecord: 47.1ms)
Redis::CannotConnectError (Error connecting to Redis on localhost:6379 (Errno::ECONNREFUSED)):

Application.yaml:

`gmail_username: "<email_address>"
gmail_password: "<password>"
AWS_ACCESS_KEY: "<access_key>"
AWS_SECRET_KEY: "<secret_key>"
AWS_BUCKET: "<my_s3_app_bucket>"
REDIS_URL: "<redis_url>"`

电缆.yaml

production:
  adapter: redis
  url: <long_url_address>
  host: <host_from_url>
  port: <port_from_url>
  password: <password_from_url>

Production.rb:

  config.action_cable.allowed_request_origins = ["https://lynx-v1.herokuapp.com/"]
  config.action_cable.url = "wss://lynx-v1.herokuapp.com/cable"
  config.web_socket_server_url = "wss://lynx-v1.herokuapp.com/cable"

(我设置了动作电缆和网络插座只是为了测试哪个有效,无论我使用哪个我仍然得到错误)

/config/initializers/redis.rb

  require "redis"

    uri = URI.parse(ENV["REDIS_URL"])
    $redis = Redis.new(
                :url => ENV["REDIS_URL"],
              )

我不知道发生了什么。是某种默认值使 Redis 寻找本地主机 6379?我一步一步地按照步骤进行操作,但我不断收到此错误。

【问题讨论】:

  • 我配置了ActionCable,根据这篇文章你应该配置redis或者action cable为生产环境。 blog.heroku.com/…
  • 我确实遵循了这些步骤。 Cable.yaml 和 production.rb 是我为生产配置的位置,如上所示。虽然仍然收到此错误。我一直在努力解决它。
  • 不要在互联网上发送垃圾邮件,而是尝试一个渠道。等待答案,如果您没有得到答案,请尝试另一种方法。
  • 这个问题只被问过 2 个地方,当然问题是在等待答案时被调试。请发布与问题解决方案相关的内容。

标签: ruby-on-rails heroku deployment redis ruby-on-rails-5


【解决方案1】:

它又开始工作了。 rails 应用程序中有一个未完全配置的附加 gem。完成侧面宝石的设置后,它又开始工作了。

【讨论】:

  • 是的。你的意思是你需要安装redis插件吗?因为这包含在我附加的文档中
  • 不,我正在使用 gem anycable,我只需要在它与 redis 交互时正确完成安装。
猜你喜欢
  • 2019-03-25
  • 2017-07-21
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
  • 1970-01-01
  • 2013-10-14
  • 2020-03-13
  • 2019-01-17
相关资源
最近更新 更多