|
11 | 11 |
|
12 | 12 | var builder = Host.CreateApplicationBuilder(args); |
13 | 13 |
|
| 14 | +#region Generic configuration |
| 15 | + |
14 | 16 | builder.Services |
15 | 17 | .AddSerilog() // See https://nblumhardt.com/2024/04/serilog-net8-0-minimal/#hooking-up-aspnet-core-and-iloggert |
16 | | - .AddDefaultAWSOptions(builder.Configuration.GetAWSOptions()) |
17 | | - .AddAWSService<IAmazonSQS>(); |
| 18 | + .Configure<HostOptions>(options => |
| 19 | + { |
| 20 | + options.ServicesStartConcurrently = true; |
| 21 | + options.ServicesStopConcurrently = true; |
| 22 | + }); |
18 | 23 |
|
19 | | -builder.Services.Configure<HostOptions>(options => |
20 | | -{ |
21 | | - options.ServicesStartConcurrently = true; |
22 | | - options.ServicesStopConcurrently = true; |
23 | | -}); |
| 24 | +#endregion |
24 | 25 |
|
25 | 26 | #region OpenTelemetry |
26 | 27 |
|
|
44 | 45 |
|
45 | 46 | #endregion |
46 | 47 |
|
| 48 | +#region SQS consumers setup |
| 49 | + |
47 | 50 | builder.Services |
48 | | - .AddScoped<MessageHandler>() |
49 | | - .AddSqsConsumers(sqs => |
50 | | - { |
51 | | - sqs.Defaults.Configure(options => options.MaxNumberOfMessages = 1); |
52 | | - sqs.AddConsumer("weather-forecasts", // Also acts as a queue name |
53 | | - HandlerStack.From<MessageHandler, WeatherForecast>() |
54 | | - .Scoped() |
55 | | - .UseSqsPayload() |
56 | | - .DeserializeJson() |
57 | | - .Trace() |
58 | | - .Acknowledge() // Do not include DeleteMessage call in the OpenTelemetry root span (transaction) |
59 | | - .LogFingersCrossed() |
60 | | - .LogExceptions() |
61 | | - ); |
62 | | - }); |
| 51 | + .AddDefaultAWSOptions(builder.Configuration.GetAWSOptions()) |
| 52 | + .AddAWSService<IAmazonSQS>() |
| 53 | + .AddScoped<MessageHandler>(); |
| 54 | +var sqs = builder.Services.AddSqsConsumers(); |
| 55 | +sqs.Defaults.Configure(options => options.MaxNumberOfMessages = 1); |
| 56 | +sqs.AddConsumer("weather-forecasts", // Also acts as a queue name |
| 57 | + HandlerStack.From<MessageHandler, WeatherForecast>() |
| 58 | + .Scoped() |
| 59 | + .UseSqsPayload() |
| 60 | + .DeserializeJson() |
| 61 | + .Trace() |
| 62 | + .Acknowledge() // Do not include DeleteMessage call in the OpenTelemetry root span (transaction) |
| 63 | + .LogFingersCrossed() |
| 64 | + .LogExceptions() |
| 65 | +); |
| 66 | + |
| 67 | +#endregion |
63 | 68 |
|
64 | 69 | await builder.Build().RunAsync(); |
65 | 70 |
|
|
0 commit comments