【发布时间】:2010-10-14 04:57:54
【问题描述】:
我有一个带有守护程序的 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 和开发数据库配置。
想法?有什么建议吗?
谢谢
【问题讨论】:
标签: ruby-on-rails daemon