我有一个包含一堆任务的应用程序,每天我都想运行一个cron作业,为数据库中的每个Task创建一个DayTask.任务has_many DayTasks和这些daytasks是什么用户将每天检查.我正在使用宝石,但似乎没有运行.有任何想法吗?
配置/ schedule.rb
every 1.day,:at => "12:01am" do runner "Task.generate_tasks_for_day" end
Task.rb
def generate_tasks_for_day Task.all.each do |task| task.day_tasks.create(:target_date => Date.today) end end
运行’每当命令’的结果
1 0 * * * /bin/bash -l -c 'cd /home/grant/rails_projects/GoalTwist && script/rails runner -e production '\''Task.generate_tasks_for_day'\'''
注意:每当我想要测试运行它时,我一直在更改config / schedule.rb中的时间.
解决方法
最后我已经解决了如何运行宝石.
它在生产中运行良好,但不是在开发模式(我认为在开发模式下工作良好,你必须做一些技巧).
它在生产中运行良好,但不是在开发模式(我认为在开发模式下工作良好,你必须做一些技巧).
然后,这些是进程:
>安装宝石
写你的scheduler.rb文件
>推送到远程服务器
>登录到远程服务器(例如使用ssh)
看看是否每当通过在终端中运行上传好时:每当
>每当crontab通过运行更新:when -update-crontab
>重新启动服务器crontab(例如在ubuntu服务器中):sudo service cron restart
>检查crontab在服务器上是否良好实现:crontab -l
而已!
就我个人而言,我更喜欢直接从服务器设置crons:
>编辑crontab:crontab -e>附加我的cron(例如每天上午5:00 – 对于不是基于Linux的服务器,可能会有所不同):0 5 * * * / bin / bash -l -c’cd / path_to_my_app / current&& RAILS_ENV =生产包exec rake my_cron_rake’>检查是否良好实现:crontab -l>完成