作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何让我的 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/
我是一名优秀的程序员,十分优秀!