我应该在Hangfire工作中使用async / await吗?

时间:2018-04-23 18:13:46

标签: asynchronous async-await hangfire

我最近开始使用Hangfire来处理ASP.NET项目中的后台作业。

我的工作涉及使用WebRequest的大量,大量(和大量)HTTP调用(我可能会迁移到其他地方,但以后会这样做。)

在浏览此主题时,I stumbled upon people who do async calls in hangfire.

在Hangfire工作中使用async/await任务有什么意义吗?我知道它是一个队列,因此作业不会同时执行,但由于我的项目没有GUI,我有什么理由使用async/await在Hangfire作业中进行HTTP调用吗?

PS:涉及长时间运行的作业的请求使用Task“设计模式”,因此客户端不会遇到任何超时

1 个答案:

答案 0 :(得分:1)

您绝对可以使用Hangfire运行异步方法,并在这些异步方法中使用等待。

您链接的SO问题是对传递给Hangfire的方法进行阻止Wait调用以进行序列化,然后由hangfire服务执行。

这与

等非常不同
hangfireClient.Enqueue(() => myClass.RunAsync());

其中RunAsync是包含async的{​​{1}}方法。

awaits