public async Task <IActionResult> EnqueueAsync( [FromServices] IRabbitMQProducer rabbitMQProducer, // Using FromServices to allow lazy creation of RabbitMQ connection string source, string eventName = null) { await Task.Delay(100); FailGenerator.FailIfNeeded(1); var apiFullUrl = $"{timeApiUrl}/api/time/localday"; if (logger.IsEnabled(LogLevel.Debug)) { logger.LogDebug("Getting time from {url}", apiFullUrl); } var day = await httpClientFactory.CreateClient().GetStringAsync(apiFullUrl); var jsonResponse = new EnqueuedMessage { Day = day, EventName = eventName, Source = source ?? "N/a" }; var message = System.Text.Json.JsonSerializer.Serialize(jsonResponse); rabbitMQProducer.Publish(message); metrics.TrackItemEnqueued(1, source); return(new JsonResult(jsonResponse)); }
public RabbitMQMessageBus(IServiceProvider serviceProvider, ILogger <RabbitMQMessageBus> logger, RabbitMQMessageBusOptions options) { _serviceProvider = serviceProvider; _logger = logger; _options = options; _connection = _serviceProvider.GetService <IConnection>(); this._producer = new RabbitMQProducer(this._serviceProvider); }
public RabbitMQConsumer(IServiceProvider serviceProvider, IRabbitMQProducer producer) { _serviceProvider = serviceProvider; _producer = producer; _logger = serviceProvider.GetService <ILogger <RabbitMQConsumer> >(); _options = serviceProvider.GetService <RabbitMQMessageBusOptions>(); _connection = _serviceProvider.GetService <IConnection>(); _channel = _connection.CreateModel(); _channel.ModelShutdown += _channel_ModelShutdown; _autoAck = _options.AutoAck; }
public RabbitMQDelayConsumer(IServiceProvider serviceProvider, IRabbitMQProducer producer) { _serviceProvider = serviceProvider; _producer = producer; _logger = serviceProvider.GetService <ILogger <RabbitMQDelayConsumer> >(); _options = serviceProvider.GetService <RabbitMQMessageBusOptions>(); _connection = _serviceProvider.GetService <IConnection>(); _channel = _connection.CreateModel(); _autoAck = false; // _options.AutoAck; ManualCommitBatch = 1; // _options.ManualCommitBatch; }
public MQApp(IRabbitMQProducer mqProducer)//HeyGearsConfigService service, IRedis redis, { //_config = service.config; //_redis = redis; _mqProducer = mqProducer; }
public Worker(IRabbitMQProducer producer) { this.producer = producer; }
public HomeController(IRabbitMQProducer rabbitMQProducer) { this.rabbitMQProducer = rabbitMQProducer; }