【发布时间】:2021-06-23 18:59:13
【问题描述】:
我有两个 Rails 应用程序,我想通过应用程序 A 的 rake 任务运行应用程序 B 的 rake 任务。到目前为止,我已经尝试过这种方式,但出现如下错误:
Don't know how to build task 'environment' (See the list of available tasks with `rake --tasks`)
App A 的 rake 任务是:
namespace :daily_all_rake do
desc 'daily Rake'
task :daily_rake do
Bundler.with_clean_env do
exec("exec >> lib/rake/out.dat && exec 2>> lib/rake/err.dat &&
cd #{App_B Path} &&
RAILS_ENV=production BUNDLE_GEMFILE=#{Gemfile of App B} bundle exec rake -f #{Path to Rake File in App B} delete_duplicate_search_object:every_month --trace")
end
end
end
App B 的 Rake 任务只是一个普通的 rake 任务。我很想知道是否有可能做到这一点,如果有可能我该怎么做?
【问题讨论】:
-
我认为你调用 rake 任务的方式有误;尝试以正常方式(从应用 B 的终端)调用 rake 任务,它是否有效?
-
如果我从 App B 终端以正常方式调用它,它就可以工作。