[英]using Cassandra c# driver with multi-thread
我正在使用Cassandra的c#驅動程序進行多線程處理。 首先,我嘗試創建一個連接並執行命令,然后在完成工作后關閉該連接。 但這似乎對我不起作用,有時會有一個例外,即沒有可用的主機。
因此,我改為使用靜態連接。 它似乎也可以正常工作。 但是,當線程工作太快時,它又被破壞了。 我必須將一些Thread.Sleep放置1秒鍾,然后它才能工作。
並使用此靜態解決方案,我嘗試使用異步過程BeginExecute,但對我也不起作用,除了沒有可用的主機外。
因此,任何人在使用Cassandra c#驅動程序進行多線程處理方面都有更好的主意或更好的實現,如果可以共享,將不勝感激。
先感謝您。
干杯,健
CassandraSession一次只能建立一個連接。 現在考慮一下,可能不是線程安全的。 但是連接池是線程安全的,因此如果您使用它,將始終具有高可用性連接
如果使用異步方法,則如下所示:
Statement sta=new SimpleStatement("Select * from XXX where XXX;");
session.ExecutAsync(sta);
確保您的設置滿足連接要求
C#驅動程序肯定應該在多線程環境中工作(1個集群對象,1個會話對象/鍵空間)
很難說為什么看到NoHostAvailable異常而沒有看到任何代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.