scenarios/aca-internal/bicep/sample-apps/jobs/src/aca-jobs/MessageReceiver.cs (36 lines of code) (raw):

using aca_jobs.Model; using Azure.Identity; using Azure.Messaging.ServiceBus; using Microsoft.Extensions.Options; namespace aca_jobs; public class MessageReceiver : IJob { private readonly ILogger<Program> _logger; private readonly ConfigurationOptions _settings; private readonly ServiceBusReceiver _receiver; public MessageReceiver(ILogger<Program> logger, IOptions<ConfigurationOptions> options) { _logger = logger; _settings = options.Value; var client = new ServiceBusClient(_settings.ServiceBusNamespace, new DefaultAzureCredential()); _receiver = client.CreateReceiver(_settings.OutputQueueName); } public async Task ExecuteAsync(CancellationToken stoppingToken) { _logger.LogInformation("Receiver running at: {time}", DateTimeOffset.Now); try { var numbers = await _receiver.ReceiveNumbersAsync(_settings.FetchCount, TimeSpan.FromSeconds(_settings.MaxWaitTime), stoppingToken); _logger.LogInformation("Received {Count} messages from the {Name} queue", numbers.Count, _settings.OutputQueueName); _logger.LogInformation("The numbers are: {Numbers}", string.Join(", ", numbers)); } catch (Exception e) { _logger.LogError("An error occurred while receiving messages from the {Name} queue: {Error}", _settings.OutputQueueName, e.Message); } } }