【问题标题】:Ruby-on-Rails Whenever by Javan working stepRuby-on-Rails 每当通过 Javan 工作步骤
【发布时间】:2012-04-18 02:48:20
【问题描述】:

我总是按照 javan 教程的 railscast 进行操作,但我似乎无法做到这一点。 是否必须安装 capistrano 才能进行 cron 工作?这是因为我没有 deploy.rb。我详细列出了步骤。如果我错过了任何步骤导致我的 cron 无法工作?我总是收到报告说我收到了一封新邮件,但我没有发送任何电子邮件操作。

第一步:

wheneverize .

====> 配置文件夹中的 schedule.rb

第 2 步: [调度器.rb]

every '1 * * * *' do
   runner 'Company.count'
end

第 3 步:[什么是“存储”?]

whenever --update-crontab store

第 4 步:[config/deploy.rb]

after "deploy:symlink", "deploy:update_crontab"  

namespace :deploy do  
  desc "Update the crontab file"  
  task :update_crontab, :roles => :db do  
     run "cd #{release_path} && whenever --update-crontab #{application}"  
  end  
end 

第 5 步:

whenever --update-crontab store

crontab -l

我错过了什么?为什么它不起作用?请逐步指导我,因为我是ROR的新手..谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 cron crontab cron-task


    【解决方案1】:

    Whenever docs 有一个使用 Capistrano 部署 Whenever 的示例。只需将以下内容添加到 Capistrano 部署配置的顶部即可。

    set :whenever_command, "bundle exec whenever"  # set this first if using bundler
    require "whenever/capistrano"
    

    然后 Whenever 将作为部署的一部分安装到 cron 中。


    更新

    为了测试每当成功更新cronssh作为目标机器的Capistrano部署用户到目标机器并运行@ 987654323@。你应该会看到类似这样的输出:

    crontab -l
    
    # Begin Whenever generated tasks for: app_name
    0 0 * * * /bin/bash -l -c 'cd /opt/path/app_name/releases/20120321133343 && RAILS_ENV=production rake group:task --silent'
    
    0 3 * * 6 /bin/bash -l -c '/opt/path/app_name/shared/bin/script'
    
    # End Whenever generated tasks for: app_name
    

    【讨论】:

    • 在 deploy.rb 文件中?并捆绑安装它会做什么?
    • 是的,在 deploy.rb 中。部署时,Whenever 将使用 bundle 更新部署目标的 cron
    猜你喜欢
    • 2014-01-12
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多