2011-08-30 45 views
3

我的服務器託管在Heroku上。我的應用程序的數據源是我的應用程序的外部數據源。以下是獲取數據的方法:連接到外部插座的Heroku上的進程

  1. 初始化連接到套接字@外部對象服務器的進程。
  2. 保存通過此套接字連接來的數據。

現在我的問題是,是否有可能在Heroku上啓動這樣的進程,它需要永久運行,在外部服務器上監聽套接字?

回答

0

我認爲這可能是您可以在heroku上運行的Node.js的一份工作。邏輯流程將通過node.js應用程序連接到派對服務器,然後在接收到數據時將觸發「回調」方法。然後,該方法可以使用數據將Web請求發送回Rails服務器。

對於像這樣的例子,檢出pubnub node.js的示例應用程序:

https://github.com/pubnub/pubnub-api/tree/master/nodejs

1

在Heroku的一個過程只能聽HTTP流量在端口80像安迪提到,Node.js的在Heroku上運行這樣的服務是你最好的選擇。

0

如果我正確理解你,你需要在連接到外部服務器的heroku上啓動一個後臺進程 - 這個過程然後從本地保存api中的數據?

訪問外部服務: 我知道Heroku並不限制對外部主機或端口的訪問。的確,我有一個應用程序連接到mongohq上的我的mongodb數據庫。

長時間運行過程:這當然可以使用新的Celadon Cedar堆棧。新的雪松堆棧使用了一個名爲Procfile的概念,它可以使任何腳本(例如ruby,bash,node.js)作爲一個進程運行。

保存數據:Heroku的具有隻讀文件系統(除/ tmp目錄),所以你需要保存從API來在數據庫(或類似的地方)中的數據。