我们实施了一个Windows服务,里面有几个计时器。随着时间的推移,计时器的逻辑变得越来越复杂。是时候重构我们的解决方案了,一种可能的方法是使用一个记录良好的框架来处理我们的需求。
有以下规则:
每天上午9点启动计时器A
每2分钟启动计时器B
如果启动计时器A,则不启动任何其他计时器
不允许计时器C和D同时运行
我查看了Quartz.net,因为它有我们列表的前2个要求,但它没有处理任何并发规则。
我有什么框架可以查看吗?
答案 0 :(得分:2)
我有类似的要求:基本上你需要的是一个状态机,可以很容易地序列化到磁盘或数据库,某种方式可以轻松地使用分层状态指定状态机,某些方法可以轻松实现指定时间事件( After , Every , At )以及某种方式可以轻松知道何时将状态机加载回内存以提升状态在当前时间。
最后我编写了自己的状态机,因为我找不到符合我要求的状态机,特别是时间事件和序列化要求。您可以在Nuget Package中获取源代码。博客条目here。欢迎反馈。