private RetryMessageQueue GetRetryMessageQueue(IServiceAddress serviceAddress) { lock (queueMap) { RetryMessageQueue queue; if (!queueMap.TryGetValue(serviceAddress, out queue)) { queue = new RetryMessageQueue(serviceAddress); queueMap[serviceAddress] = queue; } return queue; } }
private RetryMessageQueue GetRetryMessageQueue(IServiceAddress serviceAddress) { lock (queueMap) { RetryMessageQueue queue; if (!queueMap.TryGetValue(serviceAddress, out queue)) { queue = new RetryMessageQueue(serviceAddress); queueMap[serviceAddress] = queue; } return(queue); } }
public static void AddMessageQueue(this IServiceCollection services, IConfiguration configuration) { // TODO: использовать конфиг var retry = new PeriodicRetryStrategy(1000); var httpService = new HttpMessageSender <StringMessage>(@"https://localhost:44342/api/secure/incomingmessages"); var retryService = new RetryMessageQueue <StringMessage>(retry, httpService); var backup = new FileSystemFileStorage <StringMessage>(); services.Add(ServiceDescriptor.Singleton(typeof(IMessageQueue <StringMessage>), new BackedUpMessageQueue <StringMessage>(backup, retryService))); }