Как запустить задачу capistrano в рамках задачи Every?
Я имею whenever
драгоценный камень настроен правильно. Как я могу запустить это capistrano
от моего whenever
schedule.rb
?
мой график
every 1.minute, roles: [:app] do
# how to run here a capistrano task
# invoke 'my_app:test'
end
Моя задача капистрано:
namespace :my_app do
desc 'test'
task :test do
on roles(:web) do
puts "the task runs"
end
end
end
Или я должен переместить эту задачу в rake
задача. И я должен запустить эту задачу грабли в whenever
а также capistrano
?
2 ответа
Я бы предложил ваш последний вариант, переместив логику в грабли и выполнив ее из любого места и из Capistrano. Это будет намного проще и чище сделать.
Ян, вы можете найти документацию очень полезной https://github.com/javan/whe Never. Пример кода ниже - я просто скопировал и отредактировал его из документа.
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 и запускать ее через Anywhere. Вы можете выбрать роль, поэтому в основном вам не нужно использовать задачу Capistrano (я считаю, что вы хотите использовать ее только из-за роли).