Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule wyjaśniono, jak łagodnie zamknąć silos przed zamknięciem aplikacji. Dotyczy to aplikacji działających jako aplikacje konsolowe lub aplikacje kontenera. Różne sygnały zakończenia mogą spowodować zamknięcie aplikacji, na przykład Ctrl+C (lub SIGTERM
). W poniższych sekcjach opisano sposób obsługi tych sygnałów.
Łagodne wyłączenie silosu
Poniższy kod pokazuje, jak łagodnie zamknąć aplikację konsolową silosu Orleans. Rozważmy następujący przykładowy kod:
using Microsoft.Extensions.Hosting;
using Orleans;
using Orleans.Hosting;
await Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
// Use the siloBuilder instance to configure the Orleans silo.
})
.RunConsoleAsync();
Powyższy kod opiera się na Microsoft.Extensions.Hosting i Microsoft.Orleans.Server pakietach NuGet. Metoda rozszerzenia RunConsoleAsync rozszerza IHostBuilder, aby ułatwić zarządzanie okresem istnienia aplikacji, nasłuchując sygnałów zakończenia procesu i zamykając silos w sposób bezproblemowy.
Wewnętrznie, metoda RunConsoleAsync
wywołuje metodę UseConsoleLifetime, która gwarantuje, że aplikacja jest zamykana poprawnie. Aby uzyskać więcej informacji na temat zamykania hosta, zobacz Host generyczny platformy .NET: zamykanie hosta.