自1.6 Hangfire supports using the await
keyword in background tasks以来,
但是,它不是真正的异步支持,它忽略了异步方法抛出的任何异常,这导致失败的作业被视为成功。
E.g。如果我有一个调用{ text: 'Tag1' },
{ text: 'Tag2' },
{ text: 'Tag3' }
:
MyJobMethod()
即使public async Task MyJobMethod()
{
var foo = await this.bar.SomeMethodThatMayThrowAsync();
}
抛出异常,Hangfire作业也会成功。
如何在Hangfire作业中使用异步方法时确保不会吞下异常?
我应该使用SomeMethodThatMayThrowAsync()
,如果是,那么需要注意哪些陷阱?