后台任务正在排队且未执行

问题描述 投票:0回答:1

我已经按照here的说明实现了BackgroundQueue,如下所示:

public ActionResult SomeAction()
{
    backgroundQueue.QueueBackgroundWorkItem(async ct =>
    {
        //Do some work...
    }

    return Ok();
}

我在Autofac中将BackgroundQueue注册为:

builder.RegisterType<BackgroundQueue>()
    .As<IBackgroundQueue>()
    .SingleInstance();

到目前为止,一切都很好。我调用控制器动作,并将任务添加到队列中。而且它仍然存在而没有被执行。

所以我如何使任务执行?

c# asp.net-core autofac
1个回答
0
投票

您从BackgroundQueue中获得的the documentation实现只是解决方案的一部分:后台队列将仅跟踪您要执行的作业。

您还需要在文档正下方的位置:QueuedHostedService。这是一个后台服务,已在DI容器中注册,并在应用程序启动时启动。从那时起,它将监视您的BackgroundQueue,并在排队时处理工作。

© www.soinside.com 2019 - 2024. All rights reserved.