gpt4 book ai didi

ruby-on-rails-4 - 在 Rails 4 应用程序中调用 Resque.enqueue 时,Heroku 连接到 Redis 本地主机

转载 作者:可可西里 更新时间:2023-11-01 11:23:45 26 4
gpt4 key购买 nike

在 Heroku 中,当运行 Resque.enqueue 命令时,Heroku 会尝试通过本地主机连接到 Redis。在 config/initializers/redis.rb 中,正确的 URL 设置为 $redis = Redis.new(url: ENV['REDIS_URL']) 并且 $redis 被实例化而没有错误。在调用 enqueue 方法的 Controller 中 $redis.inspect 返回正确的值。

收到的错误是:Redis::CannotConnectError(连接到本地主机上的 Redis 时出错:6379(Errno::ECONNREFUSED)):

gem 文件

gem 'rails', '4.2.6' 
gem 'redis', "~> 4.1.0"
gem 'resque', "~> 1.27.3"

config/initializers/redis.rb

if Rails.env.production?
$redis = Redis.new(url: ENV['REDIS_URL'])
puts "$redis.inspect => #{$redis.inspect} "
end

lib/tasks/resque.rake

require "resque/tasks"
task "resque:setup" => :environment

抓取文件 任务 "resque:preload"=> :environment

过程文件

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: env QUEUE=* bundle exec rake resque:work

最佳答案

问题已解决,redis 指向 Heroku 中的正确服务器。

在config/initializers/redis.rb

改变了这个:

  $redis = Redis.new(url: ENV['REDIS_URL'])

对此:

  $redis = Resque.redis = Redis.new(url: ENV['REDIS_URL'])

关于ruby-on-rails-4 - 在 Rails 4 应用程序中调用 Resque.enqueue 时,Heroku 连接到 Redis 本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55172063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com