0

我正在寫一個ruby調度程序 - 也就是rufus-scheduler,並且我需要在config文件夾內的初始化程序部分寫入命令,以便每1分鐘左右執行一次任務。我試圖從這個模塊中訪問一個方法。所以我的代碼看起來像從配置文件調用模型

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

這不知道怎麼在模型中執行必要的操作。另外我不知道這是否是正確的做事方式 - 比如在配置文件中調用模型。有沒有更好的地方把這個代碼放入模型中?或者在配置文件中調用一個模型是非常好的做法。我查看了互聯網以查看紅寶石中不同類型文件的使用情況,但找不到合適的材料。任何幫助或指導讚賞。

回答

1

這聽起來像你實際上想要某種真正的計劃行動。配置文件是用於配置,而不是用於那種實際的工作代碼。

還有在軌中運行計劃任務的方法。

谷歌「rails守護進程」或「rails任務」啓動你。

下面是使用cron的計劃任務的最佳實踐好名單: A cron job for rails: best practices?

2

如果你想從單機任務訪問模式的最好方法是使用rails runner包裝。例如,你打電話給你的腳本:

rails runner call_model.rb 

這在加載Rails環境,然後執行腳本,無需自己做。由於缺乏Rails的上下文,模型本身不起作用。

如果這還不夠,您可能需要更加直接地加載Rails環境,方法是將config/environment.rb包含到rufus調度程序配置中。

相關問題