2016-08-16 13 views
1

私はGO言語を学ぼうとしています。私の小規模なプロジェクトでは、Cassandra DB接続を作成していますが、セッションを作成する時間が長くかかっています。GO言語で永続的なcassandra接続を作成するには?

次のヒットから接続時間が無視できるように永続的な接続を作成したいと思います。

永続接続を作成する方法はありますか。

カサンドラの接続コードは以下の通りです:

cluster := gocql.NewCluster("cluseter_ip") 
pass := gocql.PasswordAuthenticator{"username", "password"} 
cluster.Keyspace = "keyspace_name" 
cluster.Authenticator = pass 
cluster.Consistency = gocql.One 
cluster.Port = 9042 // default port 
cluster.NumConns = 1 
session, _ := cluster.CreateSession() 

答えて

3
var session *gocql.Session 

func getCluster() *gocql.ClusterConfig { 
    cluster := gocql.NewCluster("cluseter_ip") 
    pass := gocql.PasswordAuthenticator{"username", "password"} 
    cluster.Keyspace = "keyspace_name" 
    cluster.Authenticator = pass 
    cluster.Consistency = gocql.One 
    cluster.Port = 9042 // default port 
    cluster.NumConns = 1 
    return cluster 
} 

func initSession() error { 
    var err error 
    if session == nil || session.Closed() { 
     session, err := getCluster().CreateSession() 
    } 
    return err 
} 

今すぐセッションを使用する前に、initSession()を呼び出し、それを使用する前にエラーを確認してください。このようなものはうまくいくはずです。アプリケーションがマルチスレッドの場合は、initSession APIを同期させてください。

+0

ありがとうございます、その作業:-) – Daisy

関連する問題