我有一个应用程序,它是一个数据轮询器/更新程序,并且有大量的If / Thens周围是否是时钟上的某个时间。
换句话说,该程序在多个计划上从调度程序运行,每次传递一个操作参数。从那里开始第一次检查是检查当前的小时和分钟,然后由程序确定这是否是运行数据轮询器的正确时间。
现在你可能想知道为什么如果我按计划运行,那么我是否关心它是什么时间,为什么不在每个时间间隔运行?那么这个案例中的数据源来自我公司的一个不同的小组,并且他们有一个调控器就其所需的点击次数。它们也不能被推理,所以我限制了我对那些很有可能返回数据的命中数。
回到这个问题,在大多数情况下,我是在每天一次在源头更新的一组数据之后。目前我的运行时间间隔为5分钟,但只有在晚上8点之后才会查找新数据。
我的问题是,我有所有这些讨厌的if / then语句将当前时间与设定值进行比较,然后总是让我认为我应该让它们运行时可配置,从而导致配置代码到最后我有一堆代码。
有没有更好的模式,我没有想到,或某种类型的包是为这样的问题而构建的?
答案 0 :(得分:4)
看看Quartz.Net。这已经满足您的需求并提供了一个很好的API。
答案 1 :(得分:0)
这是我用过的东西:
一个Schedule对象,包含要执行的任务和执行该操作的时间(或执行此操作的时间列表)。
将所有任务收集到一个列表中,每五分钟读一遍这个列表,检查是否应该运行其中一些任务。
这应该减少If / then语句,并使单元测试更容易。
希望这会有所帮助 /莫滕
答案 2 :(得分:0)
你不能使用windows“预定”任务来运行带参数的代码吗?让Windows调度程序处理所有时序问题,并在适当的时候运行代码。
这就是我们如何在这里解决类似的问题。