C# 处理重复任务的框架

C# 处理重复任务的框架,c#,.net-3.5,windows-services,C#,.net 3.5,Windows Services,我们实现了一个windows服务,其中有几个计时器。随着时间的推移,计时器的逻辑变得越来越复杂。现在是重构我们的解决方案的时候了,一种可能的方法是使用一个记录良好的框架来处理我们的需求 有如下规则: 每天早上9点启动计时器A 每2分钟启动定时器B 如果计时器A已启动,则不要启动任何其他计时器 计时器C和D不允许同时运行 我查看了Quartz.net,因为它有我们列表中的前两个需求,但它不处理任何并发规则 有什么框架我可以看一下吗?我有类似的要求:本质上,您需要的是一个可以轻松序列化到磁盘或数

我们实现了一个windows服务,其中有几个计时器。随着时间的推移,计时器的逻辑变得越来越复杂。现在是重构我们的解决方案的时候了,一种可能的方法是使用一个记录良好的框架来处理我们的需求

有如下规则:

  • 每天早上9点启动计时器A

  • 每2分钟启动定时器B

  • 如果计时器A已启动,则不要启动任何其他计时器

  • 计时器C和D不允许同时运行

我查看了Quartz.net,因为它有我们列表中的前两个需求,但它不处理任何并发规则


有什么框架我可以看一下吗?

我有类似的要求:本质上,您需要的是一个可以轻松序列化到磁盘或数据库的状态机,一种使用分层状态轻松指定状态机的方法,一种可以轻松指定时间事件的方法(After、Every、at)还有一种方法可以很容易地知道何时将状态机加载回内存,以基于当前时间推进状态


最后,我编写了自己的状态机,因为我没有找到一个满足我的需求的状态机,特别是时间事件和序列化需求。您可以在一个简单的窗口中获取源代码。博客条目。欢迎反馈。

不是答案,但Quartz.NET相当不错。自己实现并发规则是相当简单的。关于Quartz,我最喜欢的是,您可以使用crontab格式来描述我熟悉的计时: