【发布时间】:2021-08-11 03:26:55
【问题描述】:
每次应用程序启动时我只需要run a function once(该函数会在我的数据库中检查特定的Mongo collection 并插入我自己预定义的文档中)。
IHostedService/BackgroundService 似乎能够胜任这项工作。我只需要将服务注入到我的 Startup.cs 文件中。
但是,我想知道是否有任何方法可以优雅地完成这项任务,因为 IHostedService 真的是为了实现更多 cron job (需要在一段时间内运行的任务,比如每 30分钟)。
谢谢。
【问题讨论】:
-
我不明白你为什么不简单地使用
IHostedService?您对因为 IHostedService 确实是为了实现更多的 cron 作业的解释是绝对错误的。 -
基本上,使用
IHostedService或BackgroundService是完成您想做的事情的唯一正确方法。 -
如果您只需要在应用程序启动时运行一个函数,则不需要 Backgroundjob 或 HostedService。例如,如果您使用 ASP.net Core API 项目或什至任何类型的其他项目类型,只需在 program.cs 或 startup.cs 中调用您的方法。您可以轻松获得所需的服务。
标签: c# asp.net-core startup background-task ihostedservice