|
@@ -88,7 +88,7 @@ namespace TEAMModelOS.FunctionV4
|
|
services.AddMultipleAzureStorage(storageConnects);
|
|
services.AddMultipleAzureStorage(storageConnects);
|
|
//services.AddHostedService<BlobRootServiceBusSub>();
|
|
//services.AddHostedService<BlobRootServiceBusSub>();
|
|
services.AddSingleton<BackgroundWorkerQueue>();
|
|
services.AddSingleton<BackgroundWorkerQueue>();
|
|
-
|
|
|
|
|
|
+ services.AddHostedService<LongRunningService>();
|
|
// services.AddIPSearcher("");
|
|
// services.AddIPSearcher("");
|
|
})
|
|
})
|
|
.Build();
|
|
.Build();
|
|
@@ -116,5 +116,25 @@ namespace TEAMModelOS.FunctionV4
|
|
_signal.Release();
|
|
_signal.Release();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public class LongRunningService : BackgroundService
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ public LongRunningService(BackgroundWorkerQueue queue)
|
|
|
|
+ {
|
|
|
|
+ _queue = queue;
|
|
|
|
+ }
|
|
|
|
+ private readonly BackgroundWorkerQueue _queue;
|
|
|
|
+
|
|
|
|
+ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
|
|
|
+ {
|
|
|
|
+ while (!stoppingToken.IsCancellationRequested)
|
|
|
|
+ {
|
|
|
|
+ var workItem = await _queue.DequeueAsync(stoppingToken);
|
|
|
|
+
|
|
|
|
+ await workItem(stoppingToken);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|