如何从rake任务在heroku控制台上运行命令,并知道它何时完成

时间:2014-08-19 03:37:12

标签: ruby bash heroku rake

我有一个像下面这样的rake任务。但是,在第一个系统行运行并且User.find_each(&:save)结束后,heroku控制台保持打开状态,并且ruby脚本不会进入下一个系统调用,因为第一个系统调用没有完成" 。用户记录保存完成后,如何退出第一个系统调用(并继续执行下一个系统调用?

task :production do
  Bundler.with_clean_env do
    system("echo 'User.find_each(&:save)' | heroku run console --remote production")
    system("echo 'Post.find_each(&:save)' | heroku run console --remote production")
  end
end

1 个答案:

答案 0 :(得分:1)

您正在运行未终止的内容(rails console)。

在本地运行rails console时会发生什么?在你输入`exit'之前它不会终止。

所以试试这个:

echo'User.find ...;退出'| heroku运行控制台