parallel processing for routes and regions

This commit is contained in:
Anton Martynenko
2025-11-19 13:01:30 +01:00
parent 7f33567632
commit b66d3a0277
8 changed files with 331 additions and 133 deletions
+5 -1
View File
@@ -32,7 +32,11 @@ builder.Services.AddSingleton<GoogleMapsDownloaderV2>();
builder.Services.AddSingleton<ITileService, TileService>();
var processingConfig = builder.Configuration.GetSection("ProcessingConfig").Get<ProcessingConfig>() ?? new ProcessingConfig();
builder.Services.AddSingleton<IRegionRequestQueue>(sp => new RegionRequestQueue(processingConfig.QueueCapacity));
builder.Services.AddSingleton<IRegionRequestQueue>(sp =>
{
var logger = sp.GetRequiredService<ILogger<RegionRequestQueue>>();
return new RegionRequestQueue(processingConfig.QueueCapacity, logger);
});
builder.Services.AddSingleton<IRegionService, RegionService>();
builder.Services.AddHostedService<RegionProcessingService>();
builder.Services.AddSingleton<IRouteService, RouteService>();
+7 -2
View File
@@ -4,7 +4,9 @@
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft.AspNetCore": "Warning"
"Microsoft.AspNetCore": "Warning",
"SatelliteProvider.Services.RegionRequestQueue": "Debug",
"SatelliteProvider.Services.GoogleMapsDownloaderV2": "Debug"
}
},
"WriteTo": [
@@ -33,7 +35,10 @@
},
"ProcessingConfig": {
"MaxConcurrentDownloads": 4,
"MaxConcurrentRegions": 3,
"DefaultZoomLevel": 20,
"QueueCapacity": 100
"QueueCapacity": 1000,
"DelayBetweenRequestsMs": 50,
"SessionTokenReuseCount": 100
}
}