基于日期时间的调度任务

时间:2011-06-24 10:44:58

标签: c++ mfc

我在私人视频网络工作,我必须安排 任务基于以下参数。有客户端Portal,Server和Gateway。 通过门户网站,用户可以请求流式传输视频。

用户还可以在以后的某个时间安排流式传输。每个任务都有一个任务ID。 任务根据以下日期时间参数进行安排。

开始时间
结束时间
重复(每天,只有一次,特定的一天)
开始日期
结束日期

现在在网关处我需要添加逻辑来实现计划任务。

我正在探索Waitable Timer Objects和CreateWaitableTimerEe。 我是否有可能使用此功能来实现该功能。

我使用的是C ++,MFC,不能使用第三方库。

我需要建议如何实现这一点。

2 个答案:

答案 0 :(得分:0)

我只想创建一个计时器线程回调循环,它会检查每分钟的时间并按指定的时间表执行任务。

答案 1 :(得分:0)

有很多种设计方法。这完全取决于您想要做什么以及具体要求是什么。

在基本设计中,我会创建一个名为“下次运行时间”的附加字段,该字段将使用开始时间,频率和之前(如果有)结束时间来计算。然后我将所有任务转储到使用此字段排序的队列中。

主要调度将获取第一个队列项并为该特定任务创建挂起的线程。现在只计算第一个项目的“下次运行时间”的时间差,并在该时间段内休眠。当你醒来时,只需恢复线程并选择下一个队列项并重复。