[英]Going to a link in the same rails application through a controller's action does not work
我希望在自己的視圖中獲得Web服務(位於同一應用程序中)的結果,因此我正在執行以下操作:
class MerchantsController < ApplicationController
def list
@cuisines = HTTParty.get('http://localhost:3000/v1/cuisines')
end
end
在通過以下方式執行此操作時: http://localhost:3000/merchants/list
,加載時間太長,最終導致Net::ReadTimeout
異常。
我將相同的應用程序部署到了heroku,因此當我指向該實例時,它可以正常工作:
class MerchantsController < ApplicationController
def list
@cuisines = HTTParty.get('http://bogoapi.herokuapp.com/v1/cuisines')
end
end
有解決方案嗎? 如果否,是什么使它表現得如此?
WEBrick-Rails的默認內置服務器是單線程服務器。 維基 您在第一個請求的邏輯內撥打電話,然后撥打另一個電話。 在第一個請求完成之前,您的第二個請求將永遠不會執行。
我想,heroku實例可以正常工作-它是多線程的。 但我建議改為更改您的代碼。 例如,您可以將單獨的服務轉換為Rails引擎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.