通过Whenever宝石获得Capistrano配置

时间:2014-12-29 16:31:40

标签: ruby-on-rails ruby ruby-on-rails-4 capistrano whenever

我在gem的schedule.rb文件中设置了一个非常简单的方法

every 10.minutes do
   rake "update_models"
end

我现在试图完成的是配置Capistrano通过调用

自动创建crontab
whenever --update-crontab --set environment=development

whenever -i

但是我没有成功完成漫长的配置过程。我的Capfile有以下

require "whenever/capistrano"

我的deploy.rb文件包含以下内容:

namespace :deploy do
  task :update_crontab do
    run "cd /Users/affinities/Desktop/my_app && bundle exec whenever --update-crontab --set environment=development"
  end
end

每当我启动服务器时,我只是想让每当gem启动它的schedule.rb文件。有人可以给我一步一步安装所需的最低数量的Capistrano吗?当我运行" rails server"我希望更新crontab。我现在只想在开发环境中尝试这样做。

1 个答案:

答案 0 :(得分:1)

我不确定,为什么你认为capistrano应该在rails server命令上运行你的任务。 Capistrano用于部署目的,与您当地的rails server起点无关。通过包括

require "whenever/capistrano"

Capfile中的这一行,您告诉capistrano在每个部署上重写crontab。它还将使用环境,该环境在此变量config/deploy/x.rb的{​​{1}}中设置。所以set :rails_env, 'environment'行就是您所需要的。你的require命令(以及相应的任务)毫无意义:

run