- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们将 Rebus 与 MSMQ 一起用于应用程序组件之间基于消息的通信。这些组件都在同一台机器上运行。
消息发送和接收之间的时间通常保持在一秒以下。但是如果系统空闲一分钟左右(意味着没有消息被发送),接下来的一两条消息有时需要大约五秒钟才能传递。 MSMQ 性能计数器显示这些消息在那段时间内留在队列中。
对于我们的应用程序,希望消息具有恒定的传递时间(低于一秒)。
这种行为的原因可能是什么?有没有办法影响 MSMQ 或 Rebus 中的消息传递时间?我们是否应该选择其他运输方式以获得更稳定的交货时间?
最佳答案
默认情况下,Rebus 会根据 BackoffBehavior 中的时间跨度逐渐停止对队列的轮询。 - 如您所见,如果空闲时间足够长,它将每 5 秒轮询一次队列。
您可以通过以下方式更改为低延迟退避策略
Configure.With(...)
.(...)
.Behavior(b => b. SetLowLatencyBackoffBehavior())
.(...)
在配置拼写中。
更新:在 Rebus 的更高版本(即版本 >= 2)中,可以像这样自定义退避时间:
Configure.With(...)
.(...)
.Options(o => {
o.SetBackoffTimes(
TimeSpan.FromMilliseconds(100),
TimeSpan.FromMilliseconds(200),
TimeSpan.FromSeconds(1)
);
})
在这种情况下,在空闲运行的前两秒以 100 毫秒和 200 毫秒的间隔进行轮询,然后在其余时间以 1 秒的间隔进行轮询。
如果这个级别的定制还不够,ISyncBackoffStrategy
可以通过 o.Register<ISyncBackoffStrategy>(c => new YourOwn SyncBackoffStrategy())
来实现和使用在.Options
上面的配置器。
关于重新使用 MSMQ : Erratic delivery-time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25990314/
我们将 Rebus 与 MSMQ 一起用于应用程序组件之间基于消息的通信。这些组件都在同一台机器上运行。 消息发送和接收之间的时间通常保持在一秒以下。但是如果系统空闲一分钟左右(意味着没有消息被发送)
我们将 Rebus 与 MSMQ 一起用于应用程序组件之间基于消息的通信。这些组件都在同一台机器上运行。 消息发送和接收之间的时间通常保持在一秒以下。但是如果系统空闲一分钟左右(意味着没有消息被发送)
我正在尝试使用 Flask 在 AWS EC2 实例上部署机器学习模型。这些是使用 joblib 腌制的 sklearn 拟合的随机森林模型。当我在本地主机上托管 Flask 并将它们加载到内存中时,
我已经使用 Celery 一段时间了,在生产环境中,我使用 RabbitMQ 作为代理,使用 Redis 作为 K8s 集群中的后端,到目前为止没有任何问题。在本地,我运行一个包含一些服务(Flask
我有一个主 div,里面有三个 div。它们都被赋予了 30% 的宽度,并且它们都在主 div 中居中。 我使用了 display: inline-block;这样三个 div 就会出现在彼此旁边,但
我正在尝试使用带有定时问题的 javascript 进行简单的测验。每个问题持续 10 秒,然后再继续下一个问题。倒数计时器对第一个问题表现良好,之后它开始加速或显示后续问题的随机数。这是我的代码,附
尝试使用 JavaMail 库验证 TLS 连接时,我随机收到以下验证错误: javax.mail.MessagingException: Can't send command to SMTP hos
我正在尝试制作某种图片库,其中图片在后台加载,并在加载完成后动态添加到 gridView。图片加载效果很好,但如果 gridView 内的图片超过屏幕高度,gridView 的滚动行为将无法按预期工作
我在 jQuery 和 this little plugin 的帮助下通过一些元素的颜色、背景颜色和边框颜色 css 属性进行颜色循环。 . 我这样做: var currentColor = myRa
我们正在开发的网站上周出现故障,我们不知道发生了什么。以下是问题列表以及我们为解决这些问题所采取的步骤: 在我们的 API 调用中,我们使用 get_field() 和 get_fields() 从中
我是一名优秀的程序员,十分优秀!