Exemplo n.º 1
0
        public async Task Schedule(ICommandDelivery <T> item)
        {
            await Task.Yield();

            if (!scheduledIdempotencyTokens.TryAdd(item.IdempotencyToken))
            {
                return;
            }

            pendingDeliveries.TryAdd(item.IdempotencyToken, item);

            clock.Schedule(async s => await Publish(item),
                           after: item.DueTime);
        }
 public void Subscribe(CircuitBreakerBrokerSubscriber subscriber)
 {
     if (subscriber == null)
     {
         throw new ArgumentNullException(nameof(subscriber));
     }
     subscriber(stateDescriptor);
     subscribers.TryAdd(subscriber);
 }