Ruby 管道本地标准至';heroku run';-必须';你不写信给史都吗?4k标准输出缓冲器?
我正在使用thor编写命令行任务(在rails 3应用程序中),并试图通过heroku将输入传递给它们,例如,Ruby 管道本地标准至';heroku run';-必须';你不写信给史都吗?4k标准输出缓冲器?,ruby,heroku,stdin,heroku-toolbelt,thor,Ruby,Heroku,Stdin,Heroku Toolbelt,Thor,我正在使用thor编写命令行任务(在rails 3应用程序中),并试图通过heroku将输入传递给它们,例如,cat somefile.csv | heroku运行thor sometask 在我的本地机器cat somefile.csv | thor sometask上运行良好,但在heroku上可能会失败。有些版本的sometasks偶尔会工作,而另一些版本总是在某个特定点失败——问题之一是,cat somefile.csv在被thor sometask使用时会回显到控制台(这只发生在her
cat somefile.csv | heroku运行thor sometask
在我的本地机器cat somefile.csv | thor sometask
上运行良好,但在heroku上可能会失败。有些版本的sometasks偶尔会工作,而另一些版本总是在某个特定点失败——问题之一是,cat somefile.csv
在被thor sometask
使用时会回显到控制台(这只发生在heroku上,所以我认为这是heroku CLI内部的)
我已经找到了一个解决办法,那就是确保我在thor任务&它们调用的函数中没有向控制台(stdout)写入任何内容,但是不得不这样做(没有进度指示等)令人沮丧
另一个“解决方法”是确保发送的文件小于4k(4095字节)-我无法使其失败
你知道为什么会发生这种情况吗(以及为什么猫会被回应到stdout)?例如,在通信过程中是否存在4k标准输出缓冲区限制?有没有办法让heroku CLI不那么冗长