我们实现了一个带有几个计时器的Windows服务。随着时间的流逝,计时器的逻辑变得越来越复杂。重构我们的解决方案的时间到了,一种可能的方法是使用一个文档齐全的框架来满足我们的需求。
有如下规则:
每天上午9点启动计时器A
每2分钟启动计时器B
如果计时器A已启动,请勿启动任何其他计时器
计时器C和D不允许同时运行
我查看了Quartz.net,因为它具有清单中的前2个要求,但它不处理任何并发规则。
有什么我可以看的框架吗?
最佳答案
我有类似的要求:本质上,您需要的是可以轻松序列化到磁盘或数据库的状态机,可以使用分层状态轻松指定状态机的某种方式,可以轻松指定时间事件(After,Every,At)的某种方式还有一些方法可以轻松知道何时将状态机加载回内存以根据当前时间推进状态。
最后,我写了自己的状态机,因为我没有找到一个满足我要求的状态机,特别是时间事件和序列化要求。您可以在Nuget Package中获取源代码。博客条目here。欢迎反馈。
关于c# - 处理重复任务的框架,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10330699/