Udostępnij za pośrednictwem


Zamykanie silosów Orleans

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.

Zobacz także