2013-02-13 16 views
0

我正在使用Torquebox構建一個嵌入式Neo4j實例作爲數據存儲的Rails應用程序。我讀過多篇博客,稱Torquebox對此很好,因爲Backgroundable方法調用在同一個進程中運行(取代了在jRuby下無效的delayed_job)。Torquebox Backgroundable方法調用

不幸的是,在玩弄它之後,顯然不是這樣,因爲新線程一直試圖啓動Neo4j並且失敗。

看文件後,我發現這裏面證實了這一點:

消息處理器在一個單獨的Ruby運行從應用程序運行,這可能是一個不同的機器上,如果你有一個集羣。

我是新來Torquebox,所以我不知道如果人們對這個只是不正確,或有與Torquebox另一種方式來做到這一點在同一個進程,以便它可以與交互運行的異步調用一個嵌入式Neo4j數據存儲?

回答

0

我不熟悉Rails/Torquebox,但是您是否在每個線程中創建了一個新的Neo4j圖?如果是這樣,在Neo4j中,只能在嵌入式環境中對圖形數據庫建立一個連接。如果您主持Neo4j並使用RESTful客戶端調用數據庫,則可以擁有多個客戶端。

+0

你可以產生多個線程,並仍然命中Neo4j,因爲在嵌入式模式下它運行在同一個進程中。由於Torquebox提供了很多開箱即用的功能,因此我希望能夠利用它而不是自己動手。 使用服務器對我們來說是不可行的,因爲我們需要做大量的寫操作,這會導致RESTful服務器出現問題 – Andrew 2013-02-14 23:29:21

+0

我的意思是,如果您正在創建嵌入式圖形數據庫類的新實例,每個線程都會遇到問題,因爲圖形數據庫只允許一個對象在嵌入式環境中連接到該數據庫。如果你正在創建一個單例對象並將它傳遞給每個線程,你應該是安全的。 – Nicholas 2013-02-14 23:58:00