我使用NetMQ作为客户机/服务器通信,用于定价系统,使用Pub/Sub作为价格数据,使用Req/Res作为C&C。它运行得很好,只是我看到NetMQ库的内部出现了随机和不可复制的异常。
我目前正在WindowsServer2008R2/20012R2上的WindowsV4.7.2堆栈上使用NetMQ v4.0.1.6。
例外情况包括:
所有这些都发生在NetMQ.NetMQPoller.RunPoller()或NetMQ.Core.Utils.Proactor.Loop()中,我不知道如何捕获和减轻它们。
使用NetMQ加强服务/应用程序以防止此类异常破坏服务的正确方法是什么?
发布于 2021-03-27 04:20:15
我在一个大的组织里专业地做了这件事,并且取得了巨大的成功。
最佳实践是在循环中包含一个try catch处理程序,然后执行如下操作
(从列表中随机抽取错误类型)
/*loop*/(/*loop condition*/) {
try {
// processing
}
catch (NetMQ.FaultException $exception) {
// specific error handling
}
catch (System.ObjectDisposedException $exception) {
// specific error handling
}
catch (Exception $exception) {
// generic error handling
}
}另外,您也可以传递一个特定的错误处理类/服务,以便将错误处理功能卸载到一个单独的位置(更好的可测试性)。
https://stackoverflow.com/questions/66660127
复制相似问题