多线程Windows服务(也称为serviceA)上的线程要等待RabbitMQ可用。在serviceA运行时,可以随时打开或关闭RabbitMQ。等待RabbitMQ可用的最佳方法是什么?
每个线程是否应该为间隔设置一个计时器-当计时器过去时,检查它是否可以再次连接?
while循环会占用大量处理器。
Thread.Sleep()可以阻止Windows服务停止。
Thread.SpinWait()似乎占用大量CPU。
此外,如果:
RabbitMQ服务已停止
serviceA然后启动
10分钟后或3天后,RabbitMQ服务启动
答案 0 :(得分:0)
如何使用task
注册回调并使用RabbitMQ Client的异步方法,我了解使用AsyncEventingBasicConsumer
的Rabbit支持异步消息处理程序