【问题标题】:Heroku with Sidekiq and Redis_To_GoHeroku 与 Sidekiq 和 Redis_To_Go
【发布时间】:2014-06-26 01:36:41
【问题描述】:

尝试使用 Redis_To_Go 通过 Sidekiq 发送电子邮件,但我的工作人员不断崩溃。我已经做了我能找到的一切,我确信这是一个小问题。虽然我想不通!

./Procfile.txt:

web: bundle exec rails server -p $PORT
worker: bundle exec sidekiq -c 5 -v

./config/initializers/redis.rb

$redis = Redis::Namespace.new("ihms_env_app", :redis => Redis.new)

uri = URI.parse(ENV["REDISTOGO_URL"])
REDIS = Redis.new(:url => ENV['REDISTOGO_URL'])

我已经将工人从 0 扩展到 1

$ heroku ps
=== web (1X): `bin/rails server -p $PORT -e $RAILS_ENV`
web.1: up 2014/05/08 10:46:56 (~ 7m ago)

=== worker (1X): `bundle exec rake jobs:work`
worker.1: crashed 2014/05/08 10:47:00 (~ 7m ago)

日志

heroku[worker.1]: State changed from crashed to starting
heroku[worker.1]: State changed from starting to up
heroku[worker.1]: Starting process with command `bundle exec rake jobs:work`
app[worker.1]: 
app[worker.1]: rake aborted!
app[worker.1]: Don't know how to build task 'jobs:work'

在控制台中,我已经运行了

heroku config:set REDIS_PROVIDER=REDISTOGO_URL

【问题讨论】:

    标签: ruby-on-rails heroku ruby-on-rails-4 sidekiq


    【解决方案1】:

    看起来您需要在 redis.rb 文件中使用条件初始化器,例如:

    if ENV["REDISCLOUD_URL"]
        uri = URI.parse(ENV["REDISCLOUD_URL"])
        $redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
    end
    

    更多详情请看我对Redis looking for env redis url variable not sure where to put env variable bad URI(is not URI?): (URI::InvalidURIError)的回复

    【讨论】:

      【解决方案2】:

      嗯。

      heroku ps 的输出和日志表明您正在尝试运行名为“jobs:work”的 rake 任务,但失败了。

      当您在本地目录中运行:bundle exec rake jobs:work 时会发生什么?我猜它失败了?

      您提供的Procfile 与您的日志相矛盾。它有 Sidekiq 而不是 rake 作为命令。您确定已将其签入到您的 git 存储库并部署它吗?

      【讨论】:

      • 是的,在我的本地目录中运行该命令失败。我也有同样的想法,并试图重新推送到 Heroku 存储库,但得到了“已经是最新的”。我刚刚在 procfile 中添加了一个空格并重新提交,重新启动了 heroku,但仍然遇到了一个崩溃的工人。 Procfile.txt 是 .gitignore 和 gemfile 的目录根目录是否正确?
      • 啊。不,您错误地命名了 Procfile。它应该被命名为Procfile(见docs)——而不是Procfile.txt
      • 我在发表评论后立即想到了这一点。当文档说“Procfile 是放置在应用程序根目录中的名为 Procfile 的文本文件”时,我只是做了一个假设。现在可以使用重命名的文件。谢谢!
      猜你喜欢
      • 2014-07-14
      • 1970-01-01
      • 2016-10-24
      • 2014-05-13
      • 2013-03-13
      • 2013-03-14
      • 2017-01-20
      • 1970-01-01
      • 2012-11-26
      相关资源
      最近更新 更多