Ruby on rails 通过从Windows访问数据库执行ruby on rails计划作业

Ruby on rails 通过从Windows访问数据库执行ruby on rails计划作业,ruby-on-rails,ruby,windows,cron,Ruby On Rails,Ruby,Windows,Cron,我有一个RoR应用程序。我想离线执行一些繁重的任务,以使我的应用程序更快。我需要实现某种EventManager来访问我的events数据库表并执行它们。这个EventManager应该检查是否有新的事件需要定期执行,所以我发现只要gem可以集成到你的应用程序中,以某种方式与cron集成,看起来就足够满足我的要求,而且非常容易使用。唯一的问题是,由于它使用cron,因此只能在Unix系统上工作 为了在windows中模拟cron,我找到了windows任务调度器,所以我可以计划任何脚本。在另一篇

我有一个RoR应用程序。我想离线执行一些繁重的任务,以使我的应用程序更快。我需要实现某种EventManager来访问我的events数据库表并执行它们。这个EventManager应该检查是否有新的事件需要定期执行,所以我发现只要gem可以集成到你的应用程序中,以某种方式与cron集成,看起来就足够满足我的要求,而且非常容易使用。唯一的问题是,由于它使用cron,因此只能在Unix系统上工作

为了在windows中模拟cron,我找到了windows任务调度器,所以我可以计划任何脚本。在另一篇文章中,我发现了如何使用以下命令调用ruby类方法:

ruby -r "./secretary.rb" -e "Secretary.executeEvents"
问题是,我认为这种方法并不像任何时候(集成在我的应用程序中)那样简单。我的意思是,当我手动执行脚本时,我得到了以下错误:

$ ruby -r "./secretary.rb" -e "Secretary.executeEvents"
c:/dev/yanpyapi/app/models/secretary.rb:1:in `<top (required)>': uninitialized constant ActiveRecord (NameError)
        from c:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
        from c:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
$ruby-r./secretary.rb“-e”secretary.executeEvents
c:/dev/yanpyapi/app/models/secretary.rb:1:in`':未初始化的常量ActiveRecord(NameError)
来自c:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core\u ext/kernel\u require.rb:45:in'require'
来自c:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core\u ext/kernel\u require.rb:45:in'require'
这是我的EventManager类:

class Secretary < ActiveRecord::Base

  def self.executeEvents
    events = Event.find_by_sql("SELECT e.*
                                 FROM events e, event_states es
                                 WHERE E.execution_date <= Time.now
                                 AND es.name = 'Pending'
                                 AND es.id = e.event_state_id");

    for event in events do
      event.execute
    end    
  end
end
班级秘书其中E.execution_date我最终使用了在windows上工作的rufus调度程序