每当附加gem crontab而不是覆盖

时间:2017-05-19 10:21:23

标签: ruby-on-rails ruby cron whenever

每次通过capistrano部署时,看起来我的schedule.rb文件内容都被附加到我的crontab。唯一的区别是发布目录

我似乎在我的crontab中重复了这个,可能是我现在部署我的应用程序的次数:

# Begin Whenever generated tasks for: /var/www/myapp/releases/20170324043318/config/schedule.rb
0 2 1 * * /bin/bash -l -c 'cd /var/www/myapp/releases/20170324043318 && RAILS_ENV=production bundle exec rake generate_timeslots --silent >> /var/www/myapp/releases/20170324043318/log/cron.log 2>&1'

0 0,12 * * * /bin/bash -l -c 'cd /var/www/csmschedule/releases/20170324043318 && RAILS_ENV=production bundle exec rake send_backup_email --silent >> /var/www/myapp/releases/20170324043318/log/cron.log 2>&1'

# End Whenever generated tasks for: /var/www/myapp/releases/20170324043318/config/schedule.rb

这是我的capistrano部署的输出:

whenever:update_crontab
      01 ~/.rvm/bin/rvm 2.3.3 do bundle exec whenever --update-crontab  --set environment=production --roles=db
      01 [write] crontab file updated
      01
    ✔ 01 myuser@123.456.78.9 0.913s

我看到我的capistrano部署中正在使用--update-crontab选项。我没有在任何地方明确地设置它。有没有办法把它关闭,以便它覆盖我的crontab?或者我误解了这面旗帜?

Capfile

# Load DSL and Setup Up Stages
require 'capistrano/setup'

# Includes default deployment tasks
require 'capistrano/deploy'

require 'capistrano/rvm'
require 'capistrano/bundler'
require 'capistrano/passenger'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require 'whenever/capistrano'
require 'airbrake/capistrano3'
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git

# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
每当版本0.9.7

时,

Gemfile.lock都会显示

当我的应用程序和数据库在服务器服务器上时,我已经成功地使用了这个问题,但这是我第一次尝试使用数据库与我的服务器不同的服务器应用服务器。

任何想法如何使我的crontab被覆盖而不是附加到?

我在Ubuntu 16.04上运行。

1 个答案:

答案 0 :(得分:0)

我通过class Helper { getCount(url) { //... } } 手动删除了我的crontab中的所有行,然后重新部署了我的应用程序几次,现在它似乎正好在每次部署时覆盖了我的crontab。