Rails Runner挂起了特定的工作

时间:2015-12-01 16:46:03

标签: ruby-on-rails ruby http

我有一个Rails项目,我正在尝试使用Rails运行程序运行脚本。这个脚本在我的本地机器上运行正常,但我试图在我刚刚设置的新EC2实例上运行它。

当我运行脚本时,它表现出一些非常奇怪的行为。脚本中的第一行是调试语句" Starting"。当我说"挂"我的意思是"开始"永远不会打印。

rails runner Script.run //hangs forever

值得一提的是,此脚本的目的是发出多个HTTP请求。因此,在调试它时,我注释掉了各种行,直到我有了实际运行的最大程序。

我需要注释的唯一一行是实际调用Net :: HTTP.request的那一行。然后,脚本将运行,并打印它应该的所有调试语句,但它实际上不会按预期运行(显然)。

对我来说似乎很奇怪的是,剧本甚至不打印"开始"当出现HTTP请求的行时。如果它到达HTTP请求本身然后永远挂起,或者至少在程序的某些部分进入该程序,则该错误会有所帮助。

什么可以导致Rails以这种方式运行?任何建议表示赞赏。

谢谢!

1 个答案:

答案 0 :(得分:0)

我实际上犯了一个愚蠢的错误,但我会回答我的问题,因为将来会犯同样的错误。

我忘了添加" $ stdout.sync = true"到配置文件,所以Rails似乎挂起,因为它没有写入stdout。当HTTP请求被禁用时,它运行得足够快,以至于我没有注意到写入被延迟了。

相关问题