【发布时间】:2020-01-21 18:32:13
【问题描述】:
我做错了什么?
IHostedService 类在 ASP.net 核心 HostBuilder 中注册。
然后在后台连续运行,即使他们无事可做。
没有办法让他们工作,所以我想他们必须从动态存储中获取任务,例如数据库
所以他们似乎主要是投票。或运行短间隔计时器;找工作
那么当他们找到工作时,他们一次只能做 1 件。
因此,如果我的用户(100 多个)在星期五(或他们希望的任何一天)运行报告,该服务只会轮询数据库 6.5 天,然后限制 0.5 天以生成 100 多个报告。
那我该怎么办
- 控制 IHostedservice 服务的启动
- 运行超过 1 个 IHostedservice 服务实例
- 以数据的形式向 IHostedservice 服务(实例)发送任务
此外,我将需要 10 多种不同类型的 IHostedService。 (10 多种不同的轮询类型)
所以在后台运行它们只是为了轮询数据库占用了 Web 服务器和数据库服务器上的 CPU 周期
【问题讨论】: