【问题标题】:How to run a command on heroku console from a rake task and know when it finishes如何从 rake 任务在 heroku 控制台上运行命令并知道它何时完成
【发布时间】:2014-08-19 03:37:12
【问题描述】:

我有一个像下面这样的 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

【问题讨论】:

    标签: ruby bash heroku rake


    【解决方案1】:

    您正在运行一些不会终止的东西 (rails console)。

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

    所以试试这个:

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

    【讨论】:

    • 谢谢,这行得通。有没有办法在控制台中链接多个操作而无需每次都退出以节省必须在每个步骤之间进入和退出的开销?比如进入控制台,同时运行上面的 User 和 Post 步骤,然后退出?
    • 你会在本地做什么?我想:commandA;命令B; commandC 将起作用。
    猜你喜欢
    • 2011-06-17
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 2016-10-27
    • 1970-01-01
    • 2016-06-03
    相关资源
    最近更新 更多