c# - C# - 在没有计时器的 Windows 服务中调度多个操作
问题描述
我需要编写一个执行如下几个操作的 Windows 服务:
- 从 api 获取数据并将其转储到 db - 每小时执行一次
- 合并 - 每 6 小时执行一次
- 摘要 - 每天 01:00 执行一次
我不想使用多个计时器或根本没有计时器。请建议安排这些任务的最佳方式。
解决方案
有多种方法可以做到这一点。如果您坚持使用 Windows 服务,您可以查看 Hangfire。使用它的成本是您需要添加一个可以存储有关作业信息的数据库。
查看 Hangfire 的以下链接:https ://www.hangfire.io/
您还可以使用本机 Windows 调度程序来调度作业。您将创建一个控制台应用程序或类似的东西,而不是创建一个 Windows 服务,并在它应该执行的时候使用 Windows 调度程序。
如果您不想使用本机功能,我建议您使用像这样的 nuget 包;https://www.quartz-scheduler.net/
以上所有内容都是用一点谷歌魔法和了解windows操作系统发现的。
推荐阅读
- sql - 跨小时结束创建两条具有相同信息的记录
- c# - 仅选择一项时,防止在列表中创建所有服务
- javascript - 弹出 HTML 到最后查看的页面
- wordpress - WordPress 电子商务电子邮件
- python - DocuSign 集成。是否可以在未经用户同意的情况下获得身份验证令牌。我想使用我的凭据在内部发送 docusign 信封电子邮件
- python - 如何在 Go 中使用协议缓冲区 FieldMask
- spring-boot - 如何在spring boot gradle项目中将时间戳附加到jar?
- android - 适用于 Android 的 AutoLink 撰写文本
- angular - 使用变量时,Angular Cloudinary 宽度不起作用
- typescript - 如何使用 JSDoc 记录元组?