【问题标题】:delayed_job not picking up the rails environmentdelay_job 没有使用 rails 环境
【发布时间】:2010-11-26 01:36:19
【问题描述】:

关注了这个关于delayed_job and monit的问题

它在我的开发机器上工作。但是,每当我尝试在生产环境中运行时,它就会随着延迟的工作日志而死

*** Starting job worker delayed_job host:mail.welcometonewnepal.com pid:356
#<Mysql::Error: Access denied for user 'root'@'localhost' (using password: YES)>
*** Starting job worker delayed_job host:mail.welcometonewnepal.com pid:441
#<Mysql::Error: Access denied for user 'root'@'localhost' (using password: YES)>
*** Starting job worker delayed_job host:mail.welcometonewnepal.com pid:448
#<Mysql::Error: Access denied for user 'root'@'localhost' (using password: YES)>

我将在生产环境中运行

ruby script/delayed_job start -e production

仍然出错。我注意到这是由于未设置环境,因此它试图获取开发环境。

/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:365:in `read': No such file or directory - /home/millisami/rails_apps/wnn_finale/config/environments/-e.rb (Errno::ENOENT)

为什么环境参数设置不正确?

【问题讨论】:

  • cite 提出了一个很好的观点。你的 script/delayed_job 文件是什么样的?

标签: ruby-on-rails daemon delayed-job


【解决方案1】:

随便用

ruby RAILS_ENV=production script/delayed_job start

【讨论】:

    【解决方案2】:

    我可能在这里很累,但是您是否使用this gist 作为脚本/延迟作业?如果是这样,则不需要“-e” - simply calling script/delayed_job start production 或更改以 ENV['RAILS_ENV'] 开头的行(将“开发”替换为“生产”)就足够了。

    如果您之后仍然从 MySQL 收到错误,您应该仔细检查您的用户名和密码。

    【讨论】:

      【解决方案3】:

      只是为了帮助人们找到这个问题和旧答案:脚本不再接受环境参数:https://github.com/collectiveidea/delayed_job/issues/7

      【讨论】:

        【解决方案4】:

        试试script/delayed_job start -- production。我认为您将环境传递给 DJ 的方式与传递给 script/server 的方式不同。这个答案特定于我们使用的delayed_job 文件,我正在寻找它的要点。

        编辑:这是我们使用的文件的gist

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-13
          • 2012-01-17
          • 2014-03-17
          • 2023-03-19
          • 2016-10-27
          • 2011-10-17
          • 1970-01-01
          • 2023-03-07
          相关资源
          最近更新 更多