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)); }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { var index = 0; while (!stoppingToken.IsCancellationRequested) { await producer.Publish($"Message: {index++}"); await Task.Delay(1000, stoppingToken); } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { var index = 0; while (!stoppingToken.IsCancellationRequested) { if (index++ % 2 == 0) { await producer.Publish("Send to queue1", builder => builder.RoutedTo("queue1")); } else { await producer.Publish("Send to queue2", builder => builder.RoutedTo("queue2")); } await Task.Delay(1000, stoppingToken); } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { await producer.Publish(new ToQueue { Name = "Alice" }); await Task.Delay(200, stoppingToken); } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { var index = 0; while (!stoppingToken.IsCancellationRequested) { if (index++ % 2 == 0) { await producer.Publish(new ToQueue1 { Name = "Alice" }); } else { await producer.Publish(new ToQueue2 { Age = 72 }); } await Task.Delay(200, stoppingToken); } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { var clickId = 0; while (!stoppingToken.IsCancellationRequested) { await Task.Delay(1000, stoppingToken); await producer.Publish(new ClickRequest { Id = clickId }); Console.WriteLine("Clicked: " + clickId++); } }