用REDIS取消订阅
本文关键字:取消 REDIS | 更新日期: 2023-09-27 18:09:43
我正在使用REDIS。
我需要在Redis中使用退订。我在c#中使用ServiceStack: https://github.com/ServiceStack/ServiceStack.Redis
我复制了以下代码:http://docs.servicestack.net/redis-client/redis-pubsub
订阅时存在无限锁,所以我所做的是在线程中订阅。
我可以取消订阅,但不能使用取消订阅方法。使用以下命令可以很好地完成:
myThread.abort();
... // + sending just a publish message.
但是我需要用退订方法来做
subscription.UnSubscribeFromAllChannels(); // ****Not like that***
// Not wanting doing like above as the example on the second link,
// but need to do as following:
subsciption.unsubscribe(new string[] {"MyChannel"});
unfortunely, the above just doesn't work at all (no unsubscribe).
我没有在web上看到任何示例,我需要调用取消订阅,这与第二个链接示例不一样,检查出:
if (++messagesReceived == PublishMessageCount) etc.)
如何使用subscribe方法取消订阅?像我在这篇文章中描述的那样取消订阅?
订阅* API将阻塞当前线程。订阅后,回调将在与订阅相同的线程上执行消息。您还需要对同一线程上的相同订阅调用取消订阅。
与其直接使用Redis发布/订阅API,不如直接使用reddispubsubserver,它可以在后台线程中为你管理订阅。