Как я запускаю несколько задач Rake программным способом одновременно?
В командной строке я могу запускать несколько задач, таких как
rake environment task1 task2 task3
Как я могу сделать это программно? Я знаю, что я могу выполнить одно задание, подобное этому
Rake::Task['task1'].invoke
Ответ 1
Вы можете вызвать две задачи:
require 'rake'
task :task1 do |t|
p t
end
task :task2 do |t|
p t
end
Rake::Task["task1"].invoke
Rake::Task["task2"].invoke
Я бы предпочел новый вкус с предварительными условиями:
require 'rake'
task :task1 do |t|
p t
end
task :task2 do |t|
p t
end
desc "Common task"
task :all => [ :task1, :task2 ]
Rake::Task["all"].invoke
Если я неправильно понял ваш вопрос, и вы хотите выполнить одну и ту же задачу дважды: вы можете reenable задачи:
require 'rake'
task :task1 do |t|
p t
end
Rake::Task["task1"].invoke
Rake::Task["task1"].reenable
Rake::Task["task1"].invoke
Ответ 2
Сделайте для него рейк-задачу: P
# in /lib/tasks/some_file.rake
namespace :myjobs do
desc "Doing work, son"
task :do_work => :environment do
Rake::Task['resque:work'].invoke
start_some_other_task
end
def start_some_other_task
# custom code here
end
end