Ejemplo n.º 1
0
        public async Task PushMessageToSubscriberAsync <TMessage>(MessageSubscriberInfo messageSubscriberInfo, TMessage message)
            where TMessage : class
        {
            var serialized = messageSerializer.Serialize(message);

            await database.ListRightPushAsync(messageSubscriberInfo.QueueName, serialized);
        }
Ejemplo n.º 2
0
        public async Task SubscribeAsync <TMessage>(MessageSubscriberInfo messageSubscriberInfo, Func <TMessage, Task> onMessageAsync)
        {
            var subscriber = connectionMultiplexer.GetSubscriber();

            await subscriber.SubscribeAsync(
                messageSubscriberInfo.ExchangeName,
                async (redisChannel, value) => await onMessageAsync(messageSerializer.Deserialize <TMessage>(value)));
        }
Ejemplo n.º 3
0
        public async Task <TMessage> GetNextMessageAsync <TMessage>(MessageSubscriberInfo messageSubscriberInfo)
        {
            var item = await database.ListLeftPopAsync(messageSubscriberInfo.QueueName);

            return(item.IsNull ? default(TMessage) : await Task.Run(() => messageSerializer.Deserialize <TMessage>(item)));
        }