我已正确设置whenever
宝石。如何从我的capistrano
whenever
运行schedule.rb
?
我的schedule.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
任务中。我应该在whenever
和capistrano
内运行该佣金任务吗?
答案 0 :(得分:0)
我建议你使用后一个选项,将逻辑移动到rake任务并从Capistrano执行它。这样做会更加容易和清洁。
答案 1 :(得分: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 任务并通过 When 运行它更容易。你可以选择角色,所以基本上你不需要使用Capistrano任务(我相信你只是因为角色而想使用它)。