У меня есть основное API-приложение asp.net, и я впервые использую HangFire.
В приложении .Net Core все мои методы асинхронны. Исходя из SO Post, не стоит использовать wait()
при вызове асинхронного метода в hangfire.
Также в соответствии с проблемой поддержки hangfire в v1.6.0, была добавлена асинхронная поддержка. Я использую версию 1.6.12, но все же я не вижу поддержки асинхронного.
Как мне вызвать асинхронный метод из Enqueue
. В настоящее время я использую wait()
public class MyController : Controller
{
private readonly Downloader _downlaoder;
private readonly IBackgroundJobClient _backgroungJobClient;
public MyController(Downloader downloader, IBackgroundJobClient backgroungJobClient)
{
_downlaoder = downloader;
_backgroungJobClient = backgroungJobClient;
}
[HttpPost]
public void Post([FromBody]IEnumerable<string> files)
{
_backgroungJobClient.Enqueue(() => _downloader.DownloadAsync(files).Wait());
}
}