[英]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.