问题标签 [redismqserver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rest - 使用 ServiceStack 实现 WebHook
我目前正在开发一个允许控制和监视一些物理设备的 REST 服务。
相应的 REST API 主要基于您可以在以下文章中找到的原则和想法:“使用 REST 控制和监视设备”。
被监视和控制的设备可以生成一些客户端必须能够订阅的事件。我的想法是使用RESTful WebHooks来实现该部分。
因此,每当发生事件时,我的服务都会向每个订阅者发出 REST API 回调以通知它。
我的问题,现在:
使用 ServiceStack(版本 3.9.71 )实现此场景的正确方法是什么?
我的服务必须能够对订阅进行排队并将事件分派给订阅者。它还必须处理客户端关闭或无法访问的情况,并可能重试发送通知。
我是否必须从头开始实现所有内容(例如,使用托管的 ServiceStack RedisMqServer)还是已经有一些东西可以朝着我的方向发展?我用谷歌搜索了很多,但没有成功。
redis - 通过 ServiceStack/Redis MQ 对“延迟执行”消息进行排队的推荐方法是什么?
我想将要处理的消息排队,仅在经过给定的持续时间后(即,满足执行的最小日期/时间),和/或在消息的处理时间,将其执行推迟到以后及时(比如一些先决条件检查没有得到满足)。
例如,一个事件发生,它定义了一个进程,该进程需要从初始事件的时间开始不早于 1 小时运行。
是否有任何内置/建议的模型可以使用https://github.com/ServiceStack/ServiceStack/wiki/Messaging-and-Redis进行编排?
servicestack - 如何让 RedisMqServer 在重试消息之前等待一秒钟?
RedisMqServer 的 requestTimeOut 构造函数参数似乎对消息重试之间的时间没有影响。是否有其他方法可以在消息重试之间添加延迟?
具体来说,我们希望向 Message 添加一个属性,该属性将指示如果重试尝试未完成,MessageQueueHandler 应该忽略该消息多长时间。
servicestack - ServiceStack RedisMqServer 重试间隔
如何设置重试间隔ServiceStack
RedisMqServer
?
我注意到有一个名为 的属性KeepAliveRetryAfterMs
,我将其设置为 10 秒,这会对 mq 产生负面影响吗?
此外,是否有可能越来越长的重试间隔?假设第一次重试是 5 秒,第二次重试是 1 分钟,第三次重试是 1 小时,第四次重试是 1 天,等等?
servicestack - 使用 RedisMqHost 将消息执行推迟到特定时间
是否可以将 RedisMqServer 用作简单的任务调度程序?例如发布消息并在功能中执行它(在特定时间)?
servicestack - 如何在 ServiceStack Redis MQ 中添加处理失败消息的延迟
有没有一种简单的方法可以让 Servicestack 在重试失败的 MQ 项目之前等待 x 秒(使用 Redis MQ)。目前它只是连续尝试 3 次,没有延迟。
service - 如何为依赖于服务堆栈中的用户会话的 Redis MQ 请求提供服务
我正在寻找一种更好的方法来解决以下情况。
我的 API 端点当前在处理请求时正在使用 Usersession 变量。当我们必须使用 Redis 对消息队列上的请求进行排队时,这会成为一个问题,因为它们没有可用的 Usersession 信息。我想知道伟大的思想是如何解决这个问题的。
对此的任何想法/解决方案表示赞赏。谢谢 :)
servicestack - 覆盖排队消息的可见性时间 [ServiceStack]
对于长时间运行的基于消息的请求,我们可以在队列级别设置可见性超时,但似乎没有办法在消息级别覆盖它。我希望能够延长长时间运行的操作的时间,而无需设置队列范围的超长超时。底层 SQS 服务提供 ChangeMessageVisibility 功能,但未公开。据我所知,RedisMQ 根本不支持这个概念。
- RedisMQ 是否存在有效的超时和重试?
- 是否有可能从服务中公开延长可见性时间的能力?然后,长时间运行的操作可以定期调用它以获得足够的时间。
servicestack - 寻求对ServiceStack.Redis的理解:IRedisClient.PublishMessage vs IMessageQueueClient.Publish
我很难将两者分开IRedisClient.PublishMessage
,IMessageQueueClient.Publish
并意识到我必须把一些东西混在一起。
ServiceStack 为我们提供了监听 pub/sub 广播的选项,如下所示:
看起来不错,简单明了。但是制作人呢?
在查看可用的类时,我认为可以使用IRedisClient.PublishMessage(string toChannel, string message)
或IMessageQueueClient.Publish(string queueName, IMessage message)
.
在这两种情况下,您都需要自己指定通道名称。这是我看到的行为:
- 上面的订阅者只有在我使用时才会收到消息,如果我使用
IRedisClient.PublishMessage(string toChannel, string message)
则永远不会收到IMessageQueueClient.Publish(string queueName, IMessage message)
- 如果我使用 发布
IRedisClient.PublishMessage
,我希望填充“测试”通道(如果我使用 Redis 浏览器查看),但事实并非如此。我从来没有看到任何队列的痕迹(假设我没有开始订阅,但生产者添加了消息) - 如果我使用 发布
IMessageQueueClient.Publish(string queueName, IMessage message)
,则创建通道“测试”并将消息保留在那里,但永远不会弹出/提取和删除。
我想了解两者之间的区别。我查看了源代码并阅读了所有关于它的内容,但我没有找到任何关于IRedisClient.PublishMessage
.
ibm-mq - 部署 MQSeries 相关组合后出现以下错误
我是这个 MQSeriesAdapter 概念的新手,在克隆环境中通过提供 jndi 名称、通道名称、主机名、端口和队列管理器名称并启用 xa 事务,创建了一个具有现有配置设置的 MQSeriesAdapter。在部署了一个 mq realted 复合材料后,我看到了以下错误。部署 MQSeries 相关组合后出现以下错误。
这是在 soa 12.2.1.4 上配置的,我需要更正任何配置问题吗?
仅供参考...我们正在使用 WMQ 工具来管理队列。