AInq.Background.Abstraction 2.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package AInq.Background.Abstraction --version 2.1.0                
NuGet\Install-Package AInq.Background.Abstraction -Version 2.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AInq.Background.Abstraction" Version="2.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add AInq.Background.Abstraction --version 2.1.0                
#r "nuget: AInq.Background.Abstraction, 2.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install AInq.Background.Abstraction as a Cake Addin
#addin nuget:?package=AInq.Background.Abstraction&version=2.1.0

// Install AInq.Background.Abstraction as a Cake Tool
#tool nuget:?package=AInq.Background.Abstraction&version=2.1.0                

AInq.Background

netstandard 2.0

What is it?

Background work utilities for .NET Core apps based on Hosted services. Originally designed for accessing API with strict request-per-second limit.

  • Background work queue with configurable parallelism and optional prioritizing
  • Shared resource access queue with different resource reuse strategies and optional prioritizing
  • Background data processing conveyor with different conveyor machine reuse strategies and optional prioritizing
  • Work scheduler with Cron support
  • Startup work utility

Packages description

NuGet version AInq.Background.Abstraction

Abstraction library with no additional dependencies.

  • Basic interfaces and factory classes:
    • Work interfaces: IWork, IWork<TResult>, IAsyncWork, IAsyncWork<TResult>
    • WorkFactory for creating simple work instances from delegates
    • Resource access interfaces: IAccess<TResource>, IAccess<TResource, TResult>, IAsyncAccess<TResource>, IAsyncAccess<TResource, TResult>
    • AccessFactory for creating simple access instances from delegates
    • IConveyorMachine<TData, TResult> for conveyor data processing machines
    • IActivatable and IThrottling for shared resources and conveyor machines with particular usage strategies
  • Service interfaces and helpers
    • IWorkQueue and IPriorityWorkQueue for background task queue with WorkQueueHelper
    • IAccessQueue<TResource> and IPriorityAccessQueue<TResource> for shared resource access queue with AccessQueueHelper
    • IConveyor<TData, TResult> and IConveyor<TData, TResult>for background data processing conveyor
    • IWorkScheduler for work scheduler with WorkSchedulerHelper
NuGet version AInq.Background

Queues and conveyor implementations.

  • Background work queue
    • Optional support for configurable parallelism
    • Optional support for prioritizing
  • Shared resource access queue
    • Support single or many resource instances with different lifetime
    • Optional support for prioritizing
  • Background data processing conveyor
    • Support single or many conveyor machines with different lifetime
    • Optional support for prioritizing
  • Startup work utility for running some work before host start

Use ConveyorInjection, WorkQueueInjection, AccessQueueInjection and StartupWorkInjection to configure services

NuGet version AInq.Background.Scheduler

Work scheduler implementation.

  • Supports delayed, time-scheduled, and cron-scheduled work
  • Support interaction with background work queue

Use WorkSchedulerInjection to configure service

NOTE: Cronos is used for parsing Cron expressions - follow documentation for supported options.

Documentation

As for now documentation is provided in this document and by XML documentation inside packages.

Contribution

These packages are in active production use, all fixes and improvements will be published after some internal testing.

If you find a bug, have a question or something else - you are friendly welcome to open an issue.

License

Apache-2.0

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on AInq.Background.Abstraction:

Package Downloads
AInq.Background

Background work utilities for .NET Core apps based on Hosted services. Background work queue, shared resource access queue, background data processing conveyor.

AInq.Background.Scheduler.Abstraction

Background work utilities for .NET Core apps based on Hosted services. Work scheduler interfaces and helpers.

AInq.Background.Startup

Background work utilities for .NET Core apps based on Hosted services. Host startup work service.

AInq.Background.Enumerable

Background work utilities for .NET Core apps based on Hosted services. Batch processing extension for background work queue, access queue and data coveyor.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
5.6.0 1,458 11/17/2023
5.5.3 771 6/20/2023
5.5.2 513 5/23/2023
5.5.1 1,869 12/3/2022
5.5.0 1,619 11/14/2022
5.5.0-preview.3 166 10/24/2022
5.5.0-preview.2 171 10/13/2022
5.5.0-preview.1 131 10/2/2022
5.4.1 2,331 8/9/2022
5.4.0 2,598 5/11/2022
5.3.1 2,347 3/28/2022
5.3.1-preview.2 133 3/28/2022
5.3.1-preview.1 132 3/28/2022
5.3.0 2,278 3/23/2022
5.3.0-rc.3 126 3/20/2022
5.3.0-rc.2 128 3/17/2022
5.3.0-rc.1 129 3/16/2022
5.2.3 2,304 3/9/2022
5.2.2 1,366 12/27/2021
5.2.1 1,214 12/17/2021
5.2.0 1,233 12/13/2021
5.1.0 1,183 12/3/2021
5.0.0 1,583 11/8/2021
5.0.0-rc.2 184 10/12/2021
5.0.0-rc.1 161 10/7/2021
4.2.0-preview.4 158 10/6/2021
4.2.0-preview.3 205 9/28/2021
4.2.0-preview.2 166 9/15/2021
4.2.0-preview 349 8/23/2021
4.1.2 1,529 5/14/2021
4.1.1 2,172 5/10/2021
4.0.0 2,326 3/14/2021
3.0.0 1,476 12/21/2020
2.3.2 1,283 7/12/2020
2.3.1 1,147 7/3/2020
2.3.0 1,105 7/2/2020
2.2.0 1,270 6/20/2020
2.1.0 1,159 6/15/2020
2.0.1 1,186 6/11/2020
2.0.0 1,165 6/9/2020

[ADD] BREAKING CHANGE Support prioritization for queued scheduled works
[ADD] Documentation
[ADD] Helper classes for queues, conveyor and scheduler
[UPD] BREAKING CHANGE More verbose methods and interfaces naming