【问题标题】:Help with the "Whenever" gem in Ruby for cron tasks帮助 Ruby 中用于 cron 任务的“Whenever” gem
【发布时间】:2011-04-25 02:21:05
【问题描述】:

我以前没有使用过 cron,所以我不能确定我做对了。我想要自动化的任务似乎没有运行。我在终端中执行了这些步骤:

  1. sudo gem 随时安装
  2. 切换到应用目录
  3. 无论何时。 (这创建了文件 schedule.rb)
  4. 我将此代码添加到 schedule.rb:

    every 10.minutes do
      runner "User.vote", environment => "development"
    end
    
    
    every :hour do
      runner "Digest.rss", :environment => "development"
    end
    
  5. 我将此代码添加到 deploy.rb:

    after "deploy:symlink", "deploy:update_crontab"
    
    
    namespace :deploy do
      desc "Update the crontab file"
      task :update_crontab, :roles => :db do
        run "cd #{current_path} && whenever --update-crontab #{application}"
      end
    end
    
  6. 我在终端中这样做了:无论何时

  7. 它返回:

    @hourly cd /Users/RedApple/S && script/runner -e development 'Digest.rss'
    
    
    0,10,20,30,40,50 * * * * cd /Users/RedApple/S && script/runner -e development 'User.vote'
    
  8. 在终端中单独运行这些命令可以:

    script/runner -e development 'Digest.rss'
    script/runner -e development 'User.vote'
    
  9. 现在以开发模式运行本地服务器,脚本/服务器,我没有看到任何证据表明代码实际上正在运行。有没有我没有做的步骤? “无论何时”的指南都没有显示除我所做的以外的任何其他内容。

【问题讨论】:

    标签: ruby cron whenever


    【解决方案1】:

    我也是新手,但我认为这只是运行

    whenever
    

    只是向您展示创建的 cron 作业的外观。为了实际编写 cron 作业(使其处于活动状态),您需要执行:

    whenever -w
    

    这将为您提供完整的选项列表:

    whenever -h
    

    【讨论】:

    • 请注意,无论何时 -i 都比任何时候 -w 更安全,这将覆盖整个 crontab。前者只更新 crontab 中与任何时候相关的条目,而其他任何条目都保持不变。您始终可以通过运行 crontab -l 来验证您的 crontab 是否已正确更新。
    猜你喜欢
    • 2017-04-30
    • 2018-02-20
    • 2011-06-04
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    相关资源
    最近更新 更多