是否需要取消订阅stackexchange.redis?

ecfsfe2w  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(250)

我正在处理几个使用redis缓存和广播消息的azurewebjobs。每个作业连续运行(作为控制台应用程序),并且随时可能有多个示例(取决于缩放规则)。当作业启动时,它订阅redis频道以接收通知:

...
var subscriber = multiplexer.GetSubscriber();

await (subscriber.SubscribeAsync("channel", HandleMessage));
...

private void HandleMessage(RedisChannel channel, RedisValue value)
{
    ...
}

我们正在使用stackexchange.redis 1.2.6。
我的问题是,我无法检测示例何时关闭,因此我没有一个地方可以可靠地调用 UnsubscribeAll() -到目前为止,我试过的方法都不管用:
appdomain.unload事件
appdomain.processexit事件
webjobsshutdownwatcher网站
到目前为止,我只做了本地测试。我不确定我是否做错了什么-关于检测webjob关闭有很多问题-我(和我所有的同事)通过使用ctrl-c或单击 X 在控制台窗口上,这样进程就被终止了—不会触发任何事件。因此,我无法在本地测试任何解决方案。不清理就让进程退出感觉不对,但我想不出任何其他解决方案。
是否有必要从redis频道取消订阅,或者干脆忘记它是安全的(或者,我上面的任何解决方案在azure中都能可靠地工作吗?)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题