运行 一个 Capistrano 任务在后台

Running a capistrano task in background

我有一个 cap 任务调用多个其他长 运行ning cap 任务:

假设我有一个名为 A

的任务

从这个上限任务中我(取决于条件)调用另一个上限任务让我们说 B

cap 任务 B 依次调用 4 个 cap 任务 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 中的每一个都是长 运行ning 并且必须 运行 按照指定的相同顺序顺序排列。

基本上任务 C 到 F 是数据库和资产压缩和上传任务,可能需要很长时间,因此它们不能妨碍 cap 部署过程,应该 运行 在后台独立。

所以我需要一种从任务 A 调用任务 B 的方法,以便它 运行 处于异步模式,并且部署期间的其余 cap 任务保持 运行宁.

我建议让任务 B 成为一个实际的 Rake 任务,然后让 Capistrano 调用并立即将其置于后台,例如