示例#1
0
        public async Task <Subscriber <T> > CreateSubscriberAsync <T>(string subscriberId, Func <T, Task> onMessageAsync) where T : class
        {
            var exchangeName = keyResolver.GetExchangeKey(typeof(T));
            var queueName    = keyResolver.GetQueueKey(exchangeName, subscriberId);
            var subscriber   = new Subscriber <T>(cacheClient, subscriberService)
            {
                SubscriberInfo = new SubscriberInfo
                {
                    SubscriberId = subscriberId,
                    ExchangeKey  = exchangeName,
                    QueueKey     = queueName
                },
                OnMessageAsync = onMessageAsync
            };

            await subscriber.InitializeAsync();

            return(subscriber);
        }
示例#2
0
 public async Task NotifyOfNewMessagesAsync(object message)
 {
     var exchangeName = nameResolver.GetExchangeKey(message.GetType());
     await cacheClient.PublishAsync(exchangeName, exchangeName);
 }