我正在使用REDIS。
我需要在Redis中使用取消订阅。 我正在使用ServiceStack for C#: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).
我没有在网上看到任何示例,我需要调用取消订阅,而不是第二个链接示例,该示例已签出:
if (++messagesReceived == PublishMessageCount) etc.)
如何使用我在本文中描述的方法subsciption.unsubscribe取消订阅?
答案 0 :(得分:1)
Subscribe * API将阻止当前线程。订阅后,回调会在与订阅相同的线程上执行消息。您还需要在同一个线程上使用相同的订阅调用取消订阅。
不是直接使用Redis Pub / Sub API,而是easier to just use RedisPubSubServer,它在后台线程中为您管理订阅。