Erste Queue¶
Der empfohlene Einstiegspunkt für ASP.NET ist Fmacias.TplQueue.Microsoft.DependencyInjection.
Queue- und Retry-Konfiguration laden¶
Die Adapter-Queue-Factories konsumieren benannte Retry-Policy- und Queue-Dictionaries. Halten Sie diese Metadaten in der normalen Anwendungskonfiguration und konvertieren Sie sie in RetryPolicyOptions und QOptions.
{
"TplQueue": {
"RetryPolicies": {
"dashboard-default": {
"BaseDelayMs": 200,
"MaxRetries": 3,
"Factor": 2.0
}
},
"Dispatchers": {
"dashboard-metadata": {
"Id": "2bdba3c7-7d17-4ea5-b2cb-7cf3f7ea14b9",
"MaxParallelism": 1,
"RetryPolicy": "dashboard-default"
}
}
}
}
Fügen Sie eine explizite Id hinzu, wenn die Queue-Identität über Neustarts hinweg deterministisch bleiben muss oder wenn externe Systeme mit derselben Dispatcher-Identität korrelieren sollen.
Facade und Queue-Dictionaries registrieren¶
var settings = TplQueueDashboardSettings.Load(configuration);
var retryPolicies = settings.CreateRetryPolicies();
var dispatchers = settings.CreateDispatchers();
var api = API.Create(CoreApi.Create(), retryPolicies, dispatchers);
services.AddSingleton(settings);
services.AddTplQueue(api, retryPolicies, dispatchers);
Eine benannte IParallelQ erstellen¶
var queueFactory = serviceProvider.GetRequiredService<IQFactoryAdapter>();
var loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
IParallelQ queue = queueFactory.Parallel(
"dashboard-metadata",
loggerFactory.CreateLogger<IParallelQ>());
Der Adapter bietet außerdem explizite Overloads, wenn die Anwendung eine Queue direkt aus IQOptions oder aus rohen Werten wie Guid, name und maxParallelism instanziieren möchte.
Eine benannte IFifoQ erstellen¶
Relevante Source-Einstiegspunkte:
Fokussierter öffentlicher ASP.NET-Sample-Ausschnitt¶
Das öffentliche QueueObserverSignalRDashboard-Sample in TplQueue.Usage verwendet dieselbe Registrierungsform:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSignalR();
builder.Services.AddDashboardSample(builder.Configuration);
Verwenden Sie dieses Sample, wenn Sie die vollständige öffentliche Komposition rund um benannte Dispatcher, Runtime-Services und Web-Host-Wiring sehen möchten.