繁体   English   中英

在ThreadLocal中存储WCF客户端代理是否安全? <ICommunicationObject>

[英]Is it safe to store WCF client proxy in ThreadLocal<ICommunicationObject>

方案:Windows服务将为到达网络文件共享的每个文件生成一个任务(例如T1)。 然后将文件划分为批处理,然后通过产生更多任务将这些批处理发送到Java WebService(SOAP),比如说a1,b1,c1...。目前,我们将WCF客户端代理存储在任务a1,b1的ThreadLocal中。 ,c1 ....也就是说,我们正在为各个线程重新创建代理,以提高可靠性,并在调用完成后关闭/中止它。

您能否建议任何可以避免代理创建成本或使用线程本地存储的替代设计?

如果代理是线程安全的,那么您可以使用一个代理进行所有通信吗?

如果代理不是线程安全的,则可以维护一个代理池。 任务a1,b1和c1将从池中检出代理,然后在完成后将其检入。 典型的合并问题将在这里发生,例如,如果在需要一个免费代理时没有可用的代理,该怎么办(做一个?“等一等”,直到准备好了?这个新代理应该返回到池中还是丢弃?),或者做什么?如果代理进入持久错误状态该怎么办。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM