【发布时间】:2012-01-27 05:45:23
【问题描述】:
我正在运行 Ruby 1.9.2/Rails 3.0.9。
我正在使用collective idea fork of delayed_job
我开始延迟工作是这样的:
RAILS_ENV=production script/delayed_job start
它从我的生产数据库中提取作业。
但是,在处理它们时,Rails.env 被评估为“开发”。 我正在上传一些图片(使用回形针),它们将转到我的 CDN 主机上的“开发”目录。
进一步的证据:
如果我在delayed_job 运行的代码中使用if 语句,Rails.env 的计算结果为“development”。
也就是说,
x = 1
if Rails.env == "production"
x = 2
end
x 仍然等于 1
x = 1
if Rails.env == "development"
x = 2
end
x 现在等于 2。
为什么 Rails.env == “开发”? 我该如何解决?
谢谢。
【问题讨论】:
-
您的脚本/delayed_job 文件中有什么内容?
-
我没碰过它:
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))require 'delayed/command'Delayed::Command.new(ARGV).daemonize
标签: ruby-on-rails ruby-on-rails-3 delayed-job