获取要在月中的某一天运行的系统服务



我有一个项目,它创建了一个批处理服务来运行在我的主项目中创建的作业。我的问题是,使用System.Timers.Timer,它无法安排超过28.4天,并且间隔不能可变。我的批处理服务大约有 9 个运算符,有些每隔几分钟执行一次,有些每天、每周和每月执行一次。

除了每月部分之外,我有一切工作,我们想在每月的第三个星期四执行它。我已经知道如何在第三个星期四GT,所以这不是问题。问题是我不能超过28.4天,每个月间隔都会改变。我已经研究了System.Threading,但从我所看到的情况来看,我不能将它用于不同间隔的多个作业。

有人有解决方案或让我研究的东西,可能会引导我走向正确的方向吗?

您可能需要重新考虑您的设计,以更短的间隔(天、小时甚至分钟)启动计时器,以检查它是否已达到某个预先存储的日期/时间。

您上面建议的问题在于,如果您重新启动服务或重新启动盒子,您将丢失计时器。

所以。。。 对于每月运行,将计时器设置为 24 小时。 存储下次它应该在某个地方(数据库、文件系统、注册表)运行作业的时间,并在每次计时器事件触发时检查这一点并运行需要运行的内容。

最新更新