Как запустить задачу capistrano в рамках задачи Every?

Я имею whenever драгоценный камень настроен правильно. Как я могу запустить это capistrano от моего wheneverschedule.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 (я считаю, что вы хотите использовать ее только из-за роли).

Другие вопросы по тегам