RoR:位于/ lib中的守护进程应该知道模型吗?

时间:2015-04-21 11:29:54

标签: ruby-on-rails

我打算在我的rails应用程序中创建一个守护进程,该守护进程每隔10分钟查看一次特定的mongodb记录,并根据查询结果创建一个新的mongodb记录。 我认为守护进程应该位于“lib”中,但我不确定lib组件应该“知道”我的模型类。 你怎么看?我错过了lib的角色吗?你对其他实施有什么建议吗?

如果只是在/ lib中的deamon中安排任务呢?示例:

# file: app/models/my_model.rb
class MyModel < ActiveRecord::Base
  def self.run!
    # do something
  end
end

# file: lib/my_daemon.rb
class MyDaemon
  def self.start!
    loop do
      MyModel.run!
    end

    sleep(1000)
  end
end

1 个答案:

答案 0 :(得分:0)

如果您希望任何任务在您的应用程序的上下文中运行,我建议您使用rake任务。这意味着该任务将转到lib/project.rake文件。

要定期运行,你有很多选项,一个是设置一个cron作业来运行它。你甚至可以使用cron来命令它的执行。