我正在使用thor编写命令行任务(在rails 3应用程序中)并尝试通过heroku管道输入,例如cat somefile.csv | heroku run thor sometask
在我的本地计算机cat somefile.csv | thor sometask
上运行良好,但在heroku上可能会失败。某些版本的某些版本偶尔会工作,其他版本的版本总是在特定点失败 - 1个问题是cat somefile.csv
正在被thor sometask
消耗时回显到控制台(这只发生在heroku,所以我认为这是heroku CLI内部的。)
我找到了一个解决方法,这是为了确保我在Thor任务中没有向控制台(stdout)写任何东西。他们称之为的功能,但必须这样做是令人沮丧的(没有进度指示等)。
另一个“解决方法”是确保发送的文件低于4k(4095bytes) - 我无法使其失败
为什么会发生这种情况的任何想法(为什么猫会被回应到stdout)?是否存在4k stdout缓冲区限制,例如在通信过程中的某个地方?有什么办法让heroku CLI更简洁吗?