Unidevel.Extensions.Hosting 0.9.2

Extends Microsoft's BackgroundService to create fail-slow service which tries to handle failures
internally, perform limited number of restarts, waits for recovery etc.

There is a newer version of this package available.
See the version list below for details.
Install-Package Unidevel.Extensions.Hosting -Version 0.9.2
dotnet add package Unidevel.Extensions.Hosting --version 0.9.2
<PackageReference Include="Unidevel.Extensions.Hosting" Version="0.9.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Unidevel.Extensions.Hosting --version 0.9.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Synopsis

Provides full-flavour implementation of error-prune background service with Serilog logging and environment
dependend configuration.

Code Example

Hosting SafeBackgroundService (and other IHostServices)

class SafeProgram : SafeProgramBase<HostedServiceLikeSafeBackgroundService>
{
    protected override void ConfigureServices(HostBuilderContext hostContext, IServiceCollection services)
    {
        services
            .AddSingleton<ISomeService, SomeServiceImpl>();

        // do not add HostedService to services, it has already been added
    }

    public static void Main(string[] args)
    {
        new Program().run();
    }
}

Implementing SafeBackgroundService

To use this class you should override at least one of following methods:

    protected abstract Task ConnectAsync(CancellationToken cancellationToken);

    protected abstract Task DisconnectAsync();

    protected abstract Task ExecuteIterationAsync(CancellationToken cancellationToken);

You also need to provide ISafeBackgroundServicePanicHandler to the constructor if you don't use
SafeProgramBase. If you do use SafeProgramBase, it will be automatically provided and will stop
all services when one of them raised panic event.

Synopsis

Provides full-flavour implementation of error-prune background service with Serilog logging and environment
dependend configuration.

Code Example

Hosting SafeBackgroundService (and other IHostServices)

class SafeProgram : SafeProgramBase<HostedServiceLikeSafeBackgroundService>
{
    protected override void ConfigureServices(HostBuilderContext hostContext, IServiceCollection services)
    {
        services
            .AddSingleton<ISomeService, SomeServiceImpl>();

        // do not add HostedService to services, it has already been added
    }

    public static void Main(string[] args)
    {
        new Program().run();
    }
}

Implementing SafeBackgroundService

To use this class you should override at least one of following methods:

    protected abstract Task ConnectAsync(CancellationToken cancellationToken);

    protected abstract Task DisconnectAsync();

    protected abstract Task ExecuteIterationAsync(CancellationToken cancellationToken);

You also need to provide ISafeBackgroundServicePanicHandler to the constructor if you don't use
SafeProgramBase. If you do use SafeProgramBase, it will be automatically provided and will stop
all services when one of them raised panic event.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
0.9.3 176 9/25/2019
0.9.2 114 7/20/2019
0.9.1 112 7/19/2019
0.9.0 115 7/19/2019