如何防止ActiveMQ CPP发送方法永远阻塞?

发布于 2024-12-07 05:50:31 字数 177 浏览 0 评论 0原文

我正在开发一个使用 ActiveMQ C++ 库的软件。我遇到的问题是,当我尝试发送消息并且网络已关闭时,send方法(cms::MessageProducer类的方法)永远阻塞,我在这种情况下需要恢复控制权。

我正在使用持久交付模式(这是强制性的,我无法避免)。

I am developing a software that uses ActiveMQ C++ library. The problem that I have is, when I try to send a message and the network is down, the send method (method of cms::MessageProducer class) blocks forever and I need to recover the control in this case.

I am using persistent deliver mode (It is compulsory, I can't avoid it).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

中二柚 2024-12-14 05:50:31

您在创建ActiveMQConnectionFactory时是否设置了sendTimeout?默认情况下它设置为 0,这意味着“无限”。

auto_ptr<ActiveMQConnectionFactory> connectionFactory(
     new ActiveMQConnectionFactory( brokerURI ) );
connectionFactory->setSendTimeout( 1000 ); // number of milliseconds
// ...
// creating Session and MessageProducer as usually

Do you set the sendTimeout when you create ActiveMQConnectionFactory? It is set to 0 by default, which means "infinite".

auto_ptr<ActiveMQConnectionFactory> connectionFactory(
     new ActiveMQConnectionFactory( brokerURI ) );
connectionFactory->setSendTimeout( 1000 ); // number of milliseconds
// ...
// creating Session and MessageProducer as usually
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文