2015-11-30 159 views
1

在我的Ruby on Rails應用程序中,用戶可以授予我以他們的名義發佈推文的權限,以便他們可以從應用程序發送預先填充的推文。這是流程:後臺Ruby on Rails請求

  • 要求到我的服務器
  • 服務器請求發送到Twitter的服務器
  • 基於Twitter的響應,我的用戶得到響應。

Twitter的請求阻止我的應用程序。我使用ActiveJob與resque進行其他與第三方應用程序和電子郵件的通信,但在這種情況下,我想根據Twitter服務器響應提供用戶響應。

是否有可能以某種方式做?:

  • 要求到我的服務器
  • 服務器請求發送到Twitter的服務器
  • 把這個在等待,所以我的服務器可以爲其他請求
  • 得到通知上嘰嘰喳喳服務器響應和發送迴應給我的用戶

這不是一個問題,我的用戶發送推文有t等等。我只是不希望其他用戶等待。

+0

你在使用獨角獸嗎?旅客? https://github.com/phusion/passenger或Puma? https://github.com/puma/puma –

+0

您是否嘗試過在第二個窗口/選項卡中運行另一個請求,而第一個請求處於「等待」狀態?你可能會發現,一切正如你所希望的那樣工作。 – Jon

+0

@ilanberci我使用Nginx的乘客。 – Jos

回答

2

一個解決方案是使用ActiveJob和rescue來請求twitter,當twitter響應時,您可以使用實時引擎來回複用戶。

另一種解決方案是使用支持多線程(puma,rainbows!..)的服務器。

我個人認爲我會用實時服務來解決這個問題。雖然它增加了一些開銷,但從長遠來看,它將有助於維持更多的併發用戶。