簡體   English   中英

在多線程中使用Cassandra c#驅動程序

[英]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);
  1. 確保您的設置滿足連接要求

  2. C#驅動程序肯定應該在多線程環境中工作(1個集群對象,1個會話對象/鍵空間)

  3. 很難說為什么看到NoHostAvailable異常而沒有看到任何代碼。

暫無
暫無

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

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