我有一个带有守护进程的 Rails 应用程序,它检查邮箱是否有任何新电子邮件。我正在为此任务使用Fetcher插件。守护程序文件如下所示:
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment.rb'
class MailFetcherDaemon < Daemon::Base
@config = YAML.load_file("#{RAILS_ROOT}/config/mail.yml")
@config = @config['production'].to_options
@sleep_time = @config.delete(:sleep_time) || 20
def self.start
puts "Starting MailFetcherDaemon"
# Add your own receiver object below
@fetcher = Fetcher.create({:receiver => MailProcessor}.merge(@config))
...
所以我让它抓取新的电子邮件,解析它们并从解析的数据中创建一个资源。但是当它试图保存资源时会抛出异常。这是因为脚本会自动分配开发环境。所以它使用我的开发数据库配置而不是生产环境(这是我想要的配置)。
我尝试使用以下方式启动脚本:
rails-root$ RAILS_ENV=production; script/mail_fetcher start
但无济于事。似乎当我加载 environment.rb 文件时,它只是默认为开发环境并从 database.yml 加载 development.rb 和开发数据库配置。
想法?建议?
谢谢