在另一个完成后运行一个rake任务

时间:2016-03-08 18:16:41

标签: ruby-on-rails rake

我正在尝试拆分我有的rake任务,

我想要做的是在rake任务完成后,它会触发另一个rake任务。

这是可能的,如果是这样的话?

2 个答案:

答案 0 :(得分:5)

您可以使用enhance将一项任务扩展到其他任务:

task :extra_behavior do
  # extra
end

Rake::Task["first:task"].enhance do
  Rake::Task[:extra_behavior].invoke
end

答案 1 :(得分:0)

将任务作为参数传递以增强功能会使其在您“增强”任务之前运行。

Rake::Task["task_A"].enhance(["task_B"])
# Runs task_B
# Runs task_A

传递要增强的任务会使它在您正在“增强”的任务之后运行。

Rake::Task["task_A"].enhance do
  Rake::Task["task_B"].execute
end
# Runs task_A
# Runs task_B

参考:Rake Task enhance Method Explained