.net core 获取QueueBackgroundWorkItem的任务
我有一个控制器:.net core 获取QueueBackgroundWorkItem的任务,.net-core,.net Core,我有一个控制器: private IBackgroundTaskQueue _queue; [HttpPost("Add")] public async Task<ActionResult<long>> Add([FromForm] long data) { return await Task.Run(() => { return Calc(data);
private IBackgroundTaskQueue _queue;
[HttpPost("Add")]
public async Task<ActionResult<long>> Add([FromForm] long data)
{
return await Task.Run(() =>
{
return Calc(data);
});
}
private ActionResult<long> Calc(long data)
{
return new ObjectResult(data);
}
QueueBackgroundWorkItem
在该示例中用于在控制器操作返回其响应后,将要执行的工作排队给后台工作人员
但是,您的示例需要返回一个结果(long
)。因此,在您的示例中使用这种队列是没有意义的
另一方面,你应该避免使用任务。在ASP.NET上运行;您可以直接调用该方法:
[HttpPost("Add")]
public ActionResult<long> Add([FromForm] long data)
{
return Calc(data);
}
[HttpPost(“添加”)]
公共操作结果添加([FromForm]长数据)
{
返回计算(数据);
}
最简单的解决方案是返回任务
Task<BaseTask> Dequeue();
任务出列();
我在github上安装了一些第一个版本的工作解决方案。解决方案可以通过进度、取消或改进的信息进行扩展
Task<BaseTask> Dequeue();