AsyncFlow 1.0.0
See the version list below for details.
dotnet add package AsyncFlow --version 1.0.0
NuGet\Install-Package AsyncFlow -Version 1.0.0
<PackageReference Include="AsyncFlow" Version="1.0.0" />
<PackageVersion Include="AsyncFlow" Version="1.0.0" />
<PackageReference Include="AsyncFlow" />
paket add AsyncFlow --version 1.0.0
#r "nuget: AsyncFlow, 1.0.0"
#:package AsyncFlow@1.0.0
#addin nuget:?package=AsyncFlow&version=1.0.0
#tool nuget:?package=AsyncFlow&version=1.0.0
AsyncFlow Library
Integrate asynchronous job flows with ease in your .NET applications. AsyncFlow is designed for web applications that use a pattern where users call an invoke API, receive a job ID, and can then track and retrieve the job's results using separate endpoints.
Features
- Asynchronous Job Invocation: Easily handle long-running jobs by providing an immediate response with a job ID.
- Status Tracking: Allow users to track the status of their job.
- Flexible Result Retrieval: Once the job is complete, users can retrieve the result.
- Integration with Hangfire: Make use of the robust background processing library, Hangfire, to handle job execution.
- Extensible Cache Options: Store job results in-memory or use a distributed cache.
Getting Started
Installation
Use the package manager NuGet to install AsyncFlow:
dotnet add package AsyncFlow
Configuration
Setup Hangfire (or any supported background job processor):
builder.Services.AddHangfire(x => x.UseMemoryStorage()); builder.Services.AddHangfireServer();Add AsyncFlow with Desired Cache:
For in-memory cache:
builder.Services.AddAsyncFlow(options => options.UseMemoryCache());For distributed cache:
builder.Services.AddAsyncFlow(options => options.UseDistributedCache(yourDistributedCacheInstance));Map Endpoints:
app.MapFlow<YourJobClass, YourRequestType, YourResponseType>("endpointName");
Custom Endpoint Configuration
You can customize the behavior of the AsyncFlow endpoints using the AsyncFlowEndpointConfigurator:
var configurator = new YourConfiguratorSubClass();
app.MapFlow<YourJobClass, YourRequestType, YourResponseType>("endpointName", configurator);
Usage Example
Define a job:
public class GenerateDataJob : IAsyncFlow<GenerateDataRequest, GenerateDataResponse>
{
public async Task<GenerateDataResponse> ProcessAsync(GenerateDataRequest request)
{
// Your logic here
}
}
Invoke it:
app.MapFlow<GenerateDataJob, GenerateDataRequest, GenerateDataResponse>("data");
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
This project is licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. 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 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- Hangfire.Core (>= 1.8.5)
- Microsoft.Extensions.Caching.Memory (>= 7.0.0)
-
net7.0
- Hangfire.Core (>= 1.8.5)
- Microsoft.Extensions.Caching.Memory (>= 7.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.