从配置文件调用模型



我正在编写一个ruby调度器-即rufus-scheduler,并且我需要在配置文件夹内的初始化器部分中编写命令,以便每1分钟左右执行一次任务。我试图从这个模块访问一个方法。所以我的代码看起来像

scheduler.every("1m") do
  puts("HELLO #{Time.now}")
  ModelName.methodname("WHAT ARE YOU DOING")
end

这在某种程度上没有在模型中执行必要的操作。此外,我不确定这是否是正确的做事方式-例如在配置文件中调用模型。在模型中有更好的地方放置这些代码吗?或者在配置文件中调用模型是一个很好的实践。我在网上查看了ruby中不同类型文件的用法,但找不到合适的材料。任何帮助或指导感谢。

如果您想从独立任务访问模型,最好的方法是使用rails runner包装器。例如,您可以这样调用脚本:

rails runner call_model.rb

这将在Rails环境中加载,然后执行脚本,从而消除了自己执行脚本的需要。模型本身是不能工作的,因为它们缺乏Rails的上下文。

如果这还不够,您可能需要通过在您的rufus-scheduler配置中包含config/environment.rb来更直接地加载Rails环境。

听起来您实际上需要某种真正的计划操作。配置文件是用于配置的,而不是用于那种实际的工作代码。

方法在rails中运行计划任务。

搜索"rails daemons"或"rails计划任务"来开始。

下面是使用cron的计划任务最佳实践列表:rails的cron作业:最佳实践?

相关内容

  • 没有找到相关文章

最新更新