0

我有whenever正确的宝石设置。我怎样才能capistrano从我的whenever schedule.rb?

我的日程安排.rb

every 1.minute, roles: [:app] do
   # how to run here a capistrano task
   # invoke 'my_app:test'
end

我的 capistrano 任务:

namespace :my_app do

  desc 'test'

  task :test do
    on roles(:web) do
      puts "the task runs"
    end
  end
end

或者我应该把那个任务变成一个rake任务。我应该在wheneverand内运行那个 rake 任务capistrano吗?

4

2 回答 2

0

我建议您选择后一种选择,将逻辑移至 rake 任务并从任何时间和 Capistrano 执行它。这样做会更容易和更清洁。

于 2017-09-05T21:06:22.057 回答
0

Jan,您可能会发现文档非常有用https://github.com/javan/whenever。下面的代码示例 - 我只是从文档中复制和编辑它。

schedule.rb

# run this task only on servers with the :app role in Capistrano
# see Capistrano roles section below
every :day, at: '12:20am', roles: [:web] do
  rake "app_server:task"
end

lib/tasks/test_task.rb

namespace :my_app do
  desc 'test'
  task :test do
    puts "the task runs"
  end
end

我相信创建 Rake 任务并通过任何时候运行它会更容易。你可以选择角色,所以基本上你不需要使用 Capistrano 任务(我相信你想使用它只是因为角色)。

于 2021-06-11T08:02:18.193 回答