簡體   English   中英

Neo4j驅動程序正在運行

[英]Neo4j Driver in play

我在我的播放應用程序中使用Neo4j Java 驅動程序。

目前,我為每個控制器(即每個http調用)初始化一個新的驅動程序。 當autoclosesable close方法運行時,它似乎阻塞了整個調用約兩秒鍾。 在不關閉驅動程序的情況下運行(顯然是個壞主意),我的測試時間從25秒減少到了5秒。

我確實懷疑我以錯誤的方式使用了驅動程序,我想我應該在整個應用程序中使用一個驅動程序,但無法弄清楚如何使用。 在play框架中使用java Neo4j驅動程序的正確方法是什么?

驅動程序接口的Javadoc指出:

驅動程序實現通常是線程安全的,充當創建會話的模板並托管連接池。 驅動程序將所有配置和身份驗證設置保持不變。 如果需要不同的設置,則應創建一個新的Driver實例。

驅動程序為每個遠程Neo4j服務器維護一個連接池。 因此,使用驅動程序的最有效方法是在應用程序中使用同一實例。

因此,通常應使用一個Driver實例。

共享同一實例的一種方法是實現提供單例 Driver實例的工廠類。 這是一個非常基本的線程安全示例:

class DriverFactory {
    private static Driver instance;
    public static synchronized Driver getDriver() {
        if (instance == null) {
            instance = GraphDatabase.driver(...);
        }
        return instance;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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