gpt4 book ai didi

c# - ServiceStack RedisServerEvents 创建数千个键

转载 作者:IT王子 更新时间:2023-10-29 06:06:19 27 4
gpt4 key购买 nike

我将 ServiceStack 与 RedisServerEvents 插件结合使用,以通知连接的客户端数据发生变化。我有两个运行 Apache/mod_mono/ServiceStack 的 Linux 虚拟机、一个 Redis 实例和一个 HAProxy 机器在前面。

我注意到的一点是,尽管目前只有大约 6 个活跃用户每天测试软件(至少是使用 SSE 的部分),但我的 Redis 实例有数千个以“sse:id. ..”。它们的 TTL 均为 -1。我可以清除 Redis 实例中的所有键,键的数量会随着时间慢慢增加。

我想弄清楚的是:这是预期的行为吗?我需要对 ServiceStack 或我的客户采取一些行动吗?

最佳答案

应该是removing the users subscription info删除订阅时。但是,当 AppDomain/Web 应用程序关闭时,它不会清除现有的订阅。我刚刚添加了一个 commit这将尝试在 AppDomain 关闭时清除任何剩余的事件订阅,但如果它没有完全关闭,则可能会有剩余的订阅。

在这种情况下,您可以在 Startup 上调用 Reset() 来清除任何以前的订阅,例如

container.Register<IServerEvents>(c => 
new RedisServerEvents(c.Resolve<IRedisClientsManager>()));

container.Resolve<IServerEvents>().Reset();

注意:这需要在任何服务器上有任何事件订阅之前运行,否则它也会删除它们。

此更改适用于 v4.5.7,现在为 available on MyGet .

关于c# - ServiceStack RedisServerEvents 创建数千个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42674766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com