【问题标题】:ASP.NET Core - Where to perform an initialisation task before spawning background services?ASP.NET Core - 在生成后台服务之前在哪里执行初始化任务?
【发布时间】:2020-11-20 17:11:48
【问题描述】:

我正在学习 ASP.NET Core,并希望在生成后台服务之前执行单个 异步 初始化任务。初始化任务根据 appsettings.{Environment}.json 配置中的信息设置 kafka 主题等。

这最好在Startup 类的Configure 方法中完成吗? (见答案)

【问题讨论】:

  • 正如你所建议的,我在Startup.Configure 中进行启动淡化(如预加载缓存中的数据)。您可以将服务作为参数注入。
  • 干杯,感谢@verno,感谢:)
  • 假设对于异步的初始化任务必须像 articlehere 中建议的那样?

标签: c# asp.net-core .net-core asp.net-core-3.1


【解决方案1】:

设置 Kafka 主题的任务是异步的,Startup.Configure 是同步的。

我最终决定使用 Thomas Levesque 的 Extensions.Hosting.AsyncInitialization 来创建 Kafka 主题。

为了使用 xUnit 和 WebApplicationFactory 进行测试,我在启动 WebApplicationFactory 测试服务器之前使用了一个类夹具从测试配置执行主题创建。看看为什么here 遇到了我遇到的测试服务器阻塞问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多