Ich spawne mehrere ASF-Microservices, um einen Prozess auszuführen. Sobald der Prozess abgeschlossen ist, lösche ich diese Dienste mit DeleteServiceAsync
mit folgendem Code. Fast 98% der Zeit läuft alles gut. In 2% der Fälle kam es jedoch zu einem Timeout-Problem, und die Microservices blieben beim Löschen des Status mit dem sekundären sekundären Replikat stecken. Vielen Dank im Voraus für Vorschläge zur Lösung dieses Problems.Service Fabric - DeleteServiceAsync Zeitüberschreitung
using (FabricClient fc = new FabricClient())
{
fc.ServiceManager.DeleteServiceAsync(deleteServiceDescription, TimeSpan.FromMinutes(5), cancellationToken);
}
Haben Sie einen Code-Pfad in RunAsync, der eine lange Zeit dauern kann und nicht regelmäßig den cancellationtoken überprüft? – LoekD
Das an RunAsync übergebene cancellationtoken wird nicht verwendet. RunAsync startet eine andere Aufgabe, die lange dauern könnte. Muss ich dieses Abbruch-Token an eine neue Aufgabe übergeben, die ich innerhalb von RunAsync starte, so dass alle Aufgaben beendet werden können, wenn eine Stornierung angefordert wird? – antar
Ja, übergeben Sie es der Operation und überprüfen Sie es. – LoekD