MediatR.ParallelPublisher
1.0.1
dotnet add package MediatR.ParallelPublisher --version 1.0.1
NuGet\Install-Package MediatR.ParallelPublisher -Version 1.0.1
<PackageReference Include="MediatR.ParallelPublisher" Version="1.0.1" />
paket add MediatR.ParallelPublisher --version 1.0.1
#r "nuget: MediatR.ParallelPublisher, 1.0.1"
// Install MediatR.ParallelPublisher as a Cake Addin #addin nuget:?package=MediatR.ParallelPublisher&version=1.0.1 // Install MediatR.ParallelPublisher as a Cake Tool #tool nuget:?package=MediatR.ParallelPublisher&version=1.0.1
MediatR.ParallelPublisher
MediatR.ParallelPublisher is an extension for MediatR that enables parallel and fire-and-forget publishing of notifications. The library aims to improve performance and responsiveness by executing notification handlers concurrently, while also providing exception handling mechanisms for notification processing.
Features
- Parallel execution of notification handlers
- Fire-and-forget notifications
- Customizable exception handling
Installation
Install MediatR.ParallelPublisher via NuGet Package Manager or by running the following command:
dotnet add package MediatR.ParallelPublisher
Usage
After installing the package, register the parallel publisher in your dependency injection container:
services.AddMediatR(config =>
{
config.UseParallelNotificationPublisher(options =>
{
// Register custom exception handlers (optional)
options.RegisterExceptionHandler<MyCustomExceptionHandler>();
});
});
To make a notification fire-and-forget, either implement the IFireAndForgetNotification
interface or use the
FireAndForgetNotificationAttribute
:
// Using the IFireAndForgetNotification interface
public class MyNotification : INotification, IFireAndForgetNotification
{
// ...
}
// Using the FireAndForgetNotificationAttribute
[FireAndForgetNotification]
public class MyOtherNotification : INotification
{
// ...
}
Implement your notification handlers as usual, and they will be executed in parallel or fire-and-forget mode, depending on the notification type:
public class MyNotificationHandler : INotificationHandler<MyNotification>
{
public Task Handle(MyNotification notification, CancellationToken cancellationToken)
{
// Your handler implementation
}
}
For custom exception handling, implement the INotificationExceptionHandler
interface:
public class MyCustomExceptionHandler : INotificationExceptionHandler
{
public Task HandleAsync(INotification notification, NotificationException exception)
{
// Handle the exception for the specified notification
}
}
License
MediatR.ParallelPublisher is released under the Apache License. See the LICENSE file for details.
Contributing
Contributions are welcome! Feel free to submit issues, feature requests, or pull requests.
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. |
-
net6.0
- MediatR (>= 12.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
-
net7.0
- MediatR (>= 12.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 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.
Version | Downloads | Last updated |
---|---|---|
1.0.1 | 5,333 | 3/26/2023 |