【问题标题】:Whenever cronjobs does not run on staging每当 cronjobs 不在 staging 上运行时
【发布时间】:2016-11-01 13:26:33
【问题描述】:

我正在尝试制作一个简单的 cron 作业来运行此任务: 这是我的 schedule.rb:

set :environment, "staging"
set :path, "/var/www/my_app/current"
every 2.minutes do
  # specify the task name as a string
  rake 'cron_test'
end

这是任务:

task :cron_test => :environment do
  out_file=File.new("cron_test.txt", "w")
  out_file.puts(Time.now.to_s)
  out_file.close
end

我尝试按照此页面上的建议进行操作,但没有任何效果: Cron job not working in Whenever gem

当我运行 crontab -l 时:

# Begin Whenever generated tasks for: /var/www/my_app/current/config/schedule.rb
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * * /bin/bash -l -c 'cd /var/www/my_app/current && RAILS_ENV=staging bundle exec rake cron_test'

# End Whenever generated tasks for: /var/www/my_app/current/config/schedule.rb

当我运行 grep CRON /var/log/syslog:

Jun 29 17:22:01 my_server CRON[21164]: (root) CMD (/bin/bash -l -c 'cd /var/www/my_app/current && RAILS_ENV=staging bundle exec rake cron_test')

有什么想法吗?

谢谢

【问题讨论】:

    标签: ruby-on-rails cron


    【解决方案1】:

    当您从控制台上的 crontab 手动运行命令时会发生什么?试试跑进去看看有没有错误。

    /bin/bash -l -c 'cd /var/www/my_app/current && RAILS_ENV=staging bundle exec rake cron_test'
    

    可能与本地或 cron 环境有关。日志也很棒,可以捕获任何运行错误。您可以设置输出日志以捕获 crontab 运行命令时出现的任何问题。

      set :output, '/path/to/file.log'
    

    为你举例:

    set :output, '/var/log/my_app.cron.log'
    set :environment, "staging"
    set :path, "/var/www/my_app/current"
    every 2.minutes do
      # specify the task name as a string
      rake 'cron_test'
    end
    

    Here's the documentation whenever output redirection

    【讨论】:

      【解决方案2】:

      感谢它现在正在工作!

      当我创建 /var/log/staging_cron.log 时,我读到:

      /bin/bash: bundle: command not found
      

      我在我的 schedule.rb 的第一行添加了env :PATH, ENV['PATH'],更新了 crontab(每当 --update-crontab 时),现在我的测试文件已经很好地创建和更新了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-08
        • 2018-04-13
        相关资源
        最近更新 更多