如何让我的 MediatR 通知处理程序触发并忘记?
我的示例代码:
public class BackupDatabase : INotification {}
public class BackupDatabaseNotificationHandler : INotificationHandler<BackupDatabase>
{
public async Task Handle(BackupDatabase notification, CancellationToken cancellationToken)
{
await Task.Delay(100000000);
}
}
public async Task<IActionResult> SomeAction()
{
await _mediator.Publish(new BackupDatabase());
return Json(true);
}
我知道一种方法是使用 Task.Factory.StartNew,但是还有另一种方法吗?
最佳答案
Mediatr 通知处理程序已经是即发即弃的了。
处理此问题的另一种方法是将后台任务排队以完成工作。看看像 Hangfire 这样的东西并在 _mediator.Send() 或 _mediator.Publish() 方法中实现它。
Hangfire 将使您能够监控后台任务,并能够在需要时自动重试任务。
有some other options如果 Hangfire 不是您的选择。
希望这对您有所帮助!
关于c# - MediatR NotificationHandler 即发即忘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52783220/