2012-04-26 40 views
2

我们实现了一个windows服务,它有几个定时器。随着时间的推移,定时器的逻辑变得越来越复杂。现在是时候重构我们的解决方案了,一种可能的方式是使用一个能够处理我们需求的文档化框架。处理重复性任务的框架

有类似的规则:

  • 启动定时器A在每天上午9点

  • 启动定时器B每2分钟

  • 定时器A启动不启动任何其他计时器

  • 计时器C和d不允许同时

  • 012运行

我看着Quartz.net,因为它有我们的列表的第一个2级的要求,但它不处理任何并发规则。

是否有任何框架,我可以看看?

+0

没有答案,但Quartz.NET是相当不错的。自己实现并发规则将是相当简单的。 – 2012-04-26 09:33:16

+0

我对石英最喜欢的事情是,你可以使用crontab格式来描述您的时间,我很熟悉:http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger – 2012-04-26 09:34:33

回答

2

我有类似的要求:基本上你需要的是一个状态机,可以很容易地序列化到磁盘或数据库,某种方式可以很容易地指定状态机使用分层状态,一些方法来轻松指定时间事件之后,,)和某种方式来轻松知道何时将状态机加载到内存中以基于当前时间提前状态。

最后,我写我自己的状态机,因为我没有找到一个能够满足我的要求,尤其是时间事件和系列化的要求。您可以在Nuget Package中获取源代码。博客条目here。反馈欢迎。