簡體   English   中英

通過控制器的操作轉到同一Rails應用程序中的鏈接不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM