【问题标题】:asp.net core 2 web api task run background taskasp.net core 2 web api任务运行后台任务
【发布时间】:2019-05-15 10:41:52
【问题描述】:

我现在正在处理一个应用程序。我的要求是我想在弹性搜索中插入数据而无需在控制器中等待。此插入过程在另一个后台线程中运行,而无需在控制器中等待。控制器在返回之前调用此线程并且无需等待此过程响应用户数据。

谁能告诉我如何管理这个架构的过程

【问题讨论】:

    标签: asp.net-core-2.0


    【解决方案1】:

    您的问题过于宽泛,但一般来说,您需要某种后台流程和一种安排工作的方法。在这方面,实际上有无数种选择,但它们属于以下三个主要类别之一:

    1. IHostedService 在 ASP.NET Core 中。 sample code for a queue-based hosted service 可能会满足您的需求。这可能是最简单的开始方式,但也是最不稳健的方式。特别是,如果您的应用程序停止,队列将随之消失,可能会导致项目丢失。

    2. 第三方工具,如Hangfire。这是一个很好的中间路线。相对容易设置且相对弹性。

    3. 消息队列,如 RabbitMQ。本质上,您将消息发送到队列,然后您有“订阅者”在该队列上侦听特定消息类型并据此采取行动。这设置起来有点复杂,但也比其他方法更具弹性。有一些方法可以确保消息传递,即使发生故障也是如此,而且您实际上可以让多个工作人员轮询队列以实现规模化。

    【讨论】:

      猜你喜欢
      • 2018-07-15
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多