c# - 每月运行一次 .Net 方法
问题描述
我有一个使用 .Net 框架的 Windows 服务,它需要每月做一次“工作”。实现这一点的最佳方法是什么?
我可以想到以下选项:
1)做“工作”并睡眠2592000秒(相当于1个月)。
2)做“工作”并继续循环直到达到所需的日期/时间?(在循环内睡了大约 1 分钟)。
3) 将其更改为控制台应用程序,并让 Windows 调度程序在指定日期/时间运行控制台应用程序。
4)任何其他方式强制.net在特定日期/时间启动/继续线程?
解决方案
在 Windows 中使用任务计划程序是一个很好且常见的选项。
另一种选择是使用调度程序库,例如FluentScheduler。这需要您的应用程序在整个月内都在运行,所以我会使用任务调度程序,让它简单地运行要执行的代码,然后让进程完成。
暂停线程或消耗 CPU 周期一个月(!)是无稽之谈,因此如果您的进程并不意味着真正长时间运行,请忘记1)
并且2)
可能还会使用。FluentScheduler
推荐阅读
- javascript - 在 Angular 6 应用程序中重绘的高图表上消失的数据点
- vue.js - Vue 组件没有被赋予唯一的 id
- google-cloud-platform - 谷歌云跑跑进OOM
- typo3 - TYPO3 RealURL extension needs lower PHP version because of scheduler. Is there a workaround?
- xamarin.forms - Xamarin.forms 如何在每个页面中显示 ActivityIndicator?
- charts - Chart.js - the exact distance in pixels between the grid lines along the X axis
- python - os.listdir(folder) 函数打印出错误的文件顺序
- c# - EF Core 延迟加载 - 导航属性失败并显示“命名空间‘Castle.Proxies’中不存在类型或命名空间名称‘ProductProxy’”
- halide - 如何使用 float16_t 声明卤化物 Func?
- elasticsearch - 使用来自具有不同包结构的 2 个不同应用程序的相同 Elastic Index 来存储数据(HibernateSearch + Elastic)