问题标签 [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.

0 投票
2 回答
2963 浏览

rest - 使用 ServiceStack 实现 WebHook

我目前正在开发一个允许控制和监视一些物理设备的 REST 服务。

相应的 REST API 主要基于您可以在以下文章中找到的原则和想法:“使用 REST 控制和监视设备”。

被监视和控制的设备可以生成一些客户端必须能够订阅的事件。我的想法是使用RESTful WebHooks来实现该部分。

因此,每当发生事件时,我的服务都会向每个订阅者发出 REST API 回调以通知它。

我的问题,现在:

使用 ServiceStack(版本 3.9.71 )实现此场景的正确方法是什么?

我的服务必须能够对订阅进行排队并将事件分派给订阅者。它还必须处理客户端关闭或无法访问的情况,并可能重试发送通知。

我是否必须从头开始实现所有内容(例如,使用托管的 ServiceStack RedisMqServer)还是已经有一些东西可以朝着我的方向发展?我用谷歌搜索了很多,但没有成功。

0 投票
2 回答
1768 浏览

redis - 通过 ServiceStack/Redis MQ 对“延迟执行”消息进行排队的推荐方法是什么?

我想将要处理的消息排队,仅在经过给定的持续时间后(即,满足执行的最小日期/时间),和/或在消息的处理时间,将其执行推迟到以后及时(比如一些先决条件检查没有得到满足)。

例如,一个事件发生,它定义了一个进程,该进程需要从初始事件的时间开始不早于 1 小时运行。

是否有任何内置/建议的模型可以使用https://github.com/ServiceStack/ServiceStack/wiki/Messaging-and-Redis进行编排?

0 投票
1 回答
205 浏览

servicestack - 如何让 RedisMqServer 在重试消息之前等待一秒钟?

RedisMqServer 的 requestTimeOut 构造函数参数似乎对消息重试之间的时间没有影响。是否有其他方法可以在消息重试之间添加延迟?

具体来说,我们希望向 Message 添加一个属性,该属性将指示如果重试尝试未完成,MessageQueueHandler 应该忽略该消息多长时间。

0 投票
0 回答
90 浏览

servicestack - ServiceStack RedisMqServer 重试间隔

如何设置重试间隔ServiceStack RedisMqServer

我注意到有一个名为 的属性KeepAliveRetryAfterMs,我将其设置为 10 秒,这会对 mq 产生负面影响吗?

此外,是否有可能越来越长的重试间隔?假设第一次重试是 5 秒,第二次重试是 1 分钟,第三次重试是 1 小时,第四次重试是 1 天,等等?

0 投票
1 回答
39 浏览

servicestack - 使用 RedisMqHost 将消息执行推迟到特定时间

是否可以将 RedisMqServer 用作简单的任务调度程序?例如发布消息并在功能中执行它(在特定时间)?

0 投票
1 回答
279 浏览

servicestack - 如何在 ServiceStack Redis MQ 中添加处理失败消息的延迟

有没有一种简单的方法可以让 Servicestack 在重试失败的 MQ 项目之前等待 x 秒(使用 Redis MQ)。目前它只是连续尝试 3 次,没有延迟。

0 投票
1 回答
32 浏览

service - 如何为依赖于服务堆栈中的用户会话的 Redis MQ 请求提供服务

我正在寻找一种更好的方法来解决以下情况。

我的 API 端点当前在处理请求时正在使用 Usersession 变量。当我们必须使用 Redis 对消息队列上的请求进行排队时,这会成为一个问题,因为它们没有可用的 Usersession 信息。我想知道伟大的思想是如何解决这个问题的。

对此的任何想法/解决方案表示赞赏。谢谢 :)

0 投票
1 回答
82 浏览

servicestack - 覆盖排队消息的可见性时间 [ServiceStack]

对于长时间运行的基于消息的请求,我们可以在队列级别设置可见性超时,但似乎没有办法在消息级别覆盖它。我希望能够延长长时间运行的操作的时间,而无需设置队列范围的超长超时。底层 SQS 服务提供 ChangeMes​​sageVisibility 功能,但未公开。据我所知,RedisMQ 根本不支持这个概念。

  1. RedisMQ 是否存在有效的超时和重试?
  2. 是否有可能从服务中公开延长可见性时间的能力?然后,长时间运行的操作可以定期调用它以获得足够的时间。
0 投票
1 回答
55 浏览

servicestack - 寻求对ServiceStack.Redis的理解:IRedisClient.PublishMessage vs IMessageQueueClient.Publish

我很难将两者分开IRedisClient.PublishMessageIMessageQueueClient.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.

0 投票
0 回答
36 浏览

ibm-mq - 部署 MQSeries 相关组合后出现以下错误

我是这个 MQSeriesAdapter 概念的新手,在克隆环境中通过提供 jndi 名称、通道名称、主机名、端口和队列管理器名称并启用 xa 事务,创建了一个具有现有配置设置的 MQSeriesAdapter。在部署了一个 mq realted 复合材料后,我看到了以下错误。部署 MQSeries 相关组合后出现以下错误。

这是在 soa 12.2.1.4 上配置的,我需要更正任何配置问题吗?

仅供参考...我们正在使用 WMQ 工具来管理队列。