Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Redis Pub/Sub ServiceStack, Abbruch des Threads

Ein Beispiel, das zeigt, wie Sie Nachrichten abonnieren und abbestellen, finden Sie in RedisMqServer, z. B.:

using (var subscription = redisClient.CreateSubscription())
{
    subscription.OnUnSubscribe = channel => 
        Log.Debug("OnUnSubscribe: " + channel);

    subscription.OnMessage = (channel, msg) =>
    {
        if (msg == "STOP")
        {
            Log.Debug("Stop Command Issued");
            Log.Debug("Unsubscribing from all Channels...");
            subscription.UnSubscribeFromAllChannels(); //Unblocks thread.
        }
    };

    subscription.SubscribeToChannels(QueueNames.TopicIn); //blocks thread
}

Wo es eine benutzerdefinierte Steuernachricht verwendet, um den Hintergrund-Thread zu entsperren und alle Kanäle des Abonnements OnMessage zu kündigen Handler.