AInq.Background.Abstraction
2.1.0
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
<PackageReference Include="AInq.Background.Abstraction" Version="2.1.0" />
paket add AInq.Background.Abstraction --version 2.1.0
#r "nuget: AInq.Background.Abstraction, 2.1.0"
// 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
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
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 delegatesIConveyorMachine<TData, TResult>
for conveyor data processing machinesIActivatable
andIThrottling
for shared resources and conveyor machines with particular usage strategies
- Work interfaces:
- Service interfaces and helpers
IWorkQueue
andIPriorityWorkQueue
for background task queue withWorkQueueHelper
IAccessQueue<TResource>
andIPriorityAccessQueue<TResource>
for shared resource access queue withAccessQueueHelper
IConveyor<TData, TResult>
andIConveyor<TData, TResult>
for background data processing conveyorIWorkScheduler
for work scheduler withWorkSchedulerHelper
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
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
Product | Versions 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. |
-
.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