将本地stdin用于'heroku run' - 不能写入stdout? 4k标准缓冲区?

时间:2013-12-09 13:35:11

标签: ruby heroku stdin heroku-toolbelt thor

我正在使用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更简洁吗?

0 个答案:

没有答案