我想在lib文件夹中创建一些脚本,这些脚本应该在我的数据库中插入/更新数据。我想使用我的模型但是当我尝试使用它们时它们没有加载。这些脚本与应用程序无关,它们是cronjobs。实现此逻辑的最佳行为是什么?提前谢谢!
答案 0 :(得分:1)
如果您希望运行cron作业,可能需要查看Delayed Job gem并将您的课程设置为app/jobs
。
答案 1 :(得分:0)
只需在lib / tasks / my_db_task.rake下创建一个rake任务 定义rake任务时,请确保它依赖于“环境”任务,它将加载与模型交互所需的所有必需依赖项(以及所有其他类,通常在rails应用程序中可用的库)
desc "insert stuff in my db"
task populate_db: :environment do
10.times { User.create! name: "bob"}
end
在你的cron中使用以下内容(当然适应你的环境):
* * * * * cd $RAILS_APP && RAILS_ENV=production /usr/local/bin/rake populate_db