gpt4 book ai didi

ruby-on-rails - Cron 作业在 Whenever gem 中不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 06:33:37 34 4
gpt4 key购买 nike

我有一个包含大量任务的应用程序,每天我都想运行一个 cron 作业,为数据库中的每个任务创建一个 DayTask。一个 Task 有_many DayTasks,这些 daytasks 是用户每天要检查的内容。我正在使用 whenever gem,但它似乎根本没有运行。有什么想法吗?

配置/schedule.rb

every 1.day, :at => "12:01am" do
runner "Task.generate_tasks_for_day"
end

任务.rb

  def generate_tasks_for_day
Task.all.each do |task|
task.day_tasks.create(:target_date => Date.today)
end
end

运行'whenever 命令'的结果

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 中的时间。

最佳答案

最后,我解决了如何随时运行 gem。它在生产模式下运行良好,但在开发模式下运行良好(我认为要在开发模式下运行良好,您必须采取一些技巧)。

然后,这些是要做的过程:

  1. 安装 gem
  2. 编写您的scheduler.rb 文件
  3. 推送到远程服务器
  4. 登录到远程服务器(例如使用ssh)
  5. 通过在终端中运行来查看上传是否正常:whenever
  6. 运行时更新 crontab:whenever --update-crontab
  7. 重启服务器 crontab(例如在 Ubuntu 服务器中):sudo service cron restart
  8. 检查服务器上的 crontab 是否正常执行:crontab -l

就是这样!

就个人而言,我更喜欢直接从服务器设置我的 crons:

  1. 编辑 crontab:crontab -e
  2. 附加我的 cron(例如,每天凌晨 5:00 - 对于非基于 Linux 的服务器可能略有不同):
    0 5 * * */bin/bash -l -c 'cd/path_to_my_app/current && RAILS_ENV=production bundle exec rake my_cron_rake'
  3. 检查是否正确执行:crontab -l
  4. 完成

关于ruby-on-rails - Cron 作业在 Whenever gem 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7548730/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com