Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            var index = 0;

            while (!stoppingToken.IsCancellationRequested)
            {
                await producer.Publish($"Message: {index++}");

                await Task.Delay(1000, stoppingToken);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                await producer.Publish(new ToQueue
                {
                    Name = "Alice"
                });

                await Task.Delay(200, stoppingToken);
            }
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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++);
            }
        }