我有一个上限任务,可以调用多个其他长时间运行的上限任务:
所以我假设我有一个名为A
从这个上限任务I(取决于条件)调用另一个上限任务,让我们说B
。
上限任务B
依次调用另外4个上限任务c
,D
,E
和& F
所以是这样的:
task :B do
on roles(:all) do
invoke 'tasks:C'
invoke 'tasks:D'
Rake::Task['db:E'].invoke("arg1", "arg2")
Rake::Task['db:F'].invoke("arg1", "arg2")
end
end
C,D,E& F长时间运行,必须按照指定的顺序依次运行。
基本上任务C到F是db&资产压缩和上传任务可能需要很长时间,因此它们不得妨碍上限部署过程,并且应该在后台独立运行。
所以我需要一种从任务B
调用任务A
的方法,以便它以异步模式运行,并且在部署期间其余的上限任务继续运行。
答案 0 :(得分:1)
我建议将任务B作为实际的Rake任务,然后进行Capistrano调用并立即将其作为背景,例如https://stackoverflow.com/a/5829142/3042016