如何使用内存队列与服务堆栈缓冲请求



目前运行SS 4.0.54,我想完成的是为客户提供一项服务,通过他们可以发送单向HTTP请求。

服务本身很简单。对于消息,打开数据库连接并保存一些值。

我不希望发生的事情是我在一分钟内收到大量请求,并且必须打开 1000 个与数据库的连接。

理想情况下,客户端将通过HTTP发送请求并填充队列。然后,SS 将每 X 毫秒或如果 MAX 数量的消息已排队,则将它们发送到服务。

这样,我们就不会让消息排队太久,并且一次只处理 X 条消息。

我已经浏览了 http://docs.servicestack.net/messaging 但有些东西没有点击。

InMemoryTransientMessageService 不缓冲,它会在收到消息后立即处理消息。您需要使用其他 MQ 服务器之一将请求发布到配置的 MQ 代理中的专用队列,然后在 HTTP 请求的上下文之外串行处理这些队列,注册处理程序时可以使用 threadCount 控制其并发性。

注册 MQ 服务器后,使用 SendOneWay API(或/oneway 预定义路由(发送到的任何请求都会自动发布到配置的 MQ 服务器。

最新更新