我有一个Rails项目,我正在尝试使用Rails运行程序运行脚本。这个脚本在我的本地机器上运行正常,但我试图在我刚刚设置的新EC2实例上运行它。
当我运行脚本时,它表现出一些非常奇怪的行为。脚本中的第一行是调试语句" Starting"。当我说"挂"我的意思是"开始"永远不会打印。
rails runner Script.run //hangs forever
值得一提的是,此脚本的目的是发出多个HTTP请求。因此,在调试它时,我注释掉了各种行,直到我有了实际运行的最大程序。
我需要注释的唯一一行是实际调用Net :: HTTP.request的那一行。然后,脚本将运行,并打印它应该的所有调试语句,但它实际上不会按预期运行(显然)。
对我来说似乎很奇怪的是,剧本甚至不打印"开始"当出现HTTP请求的行时。如果它到达HTTP请求本身然后永远挂起,或者至少在程序的某些部分进入该程序,则该错误会有所帮助。
什么可以导致Rails以这种方式运行?任何建议表示赞赏。
谢谢!
答案 0 :(得分:0)
我实际上犯了一个愚蠢的错误,但我会回答我的问题,因为将来会犯同样的错误。
我忘了添加" $ stdout.sync = true"到配置文件,所以Rails似乎挂起,因为它没有写入stdout。当HTTP请求被禁用时,它运行得足够快,以至于我没有注意到写入被延迟了。