0

有一些解决方案可以运行调度程序以开始触发。但我的要求也是在最后触发。

我有一个如下的时间表输入:-

调度程序输入

  1. 我必须在预定时间开始时恢复进度。
  2. 当有效的预定日期范围之间有休息时,我必须暂停它。休息后恢复。

看起来很复杂的工作。请给我一个更好的方法来解决它。

  • 我有一个计时器。根据上述时间表,它必须计算 2013 年 6 月 11 日 19:16 和 2013 年 6 月 17 日 23:59 之间的时间间隔(因为星期二有自定义时段)。现在以“恢复”状态启动计时器。
  • 在此计时器过去后,将在 2013 年 6 月 17 日 23:59 到 2013 年 6 月 18 日 06:00 之间计算间隔。现在以“暂停”状态启动计时器。等等....
4

1 回答 1

0

我假设您在上面显示的调度应用程序将该信息保存到文件中。如果是这样,您可以执行以下操作。

首先,您要执行的进程必须以某种方式被告知它需要关闭。我假设它是某种 Windows 事件或文件或数据库中某个位置的标志,它会定期检查。如果你没有这个设施,那么你将很难安全地完成任务。

有一个从文件中读取计划的小型应用程序(称为 Keeper)。然后它会检查您正在安排的程序是否正在运行。如果它正在运行并且该暂停,则发送信号告诉它停止。然后,创建一个计划任务,以便在下次启动时重新启动程序。还要创建一个计划任务,使 Keeper 在下一次挂起时运行。然后守护者退出。

任何时候修改计划,您只需要运行 Keeper 程序,它就会弄清楚它需要做什么:暂停程序,安排程序再次运行,并安排自己在下一个暂停时间再次运行。

维护计划任务涉及少量复杂性,但还不错。只需让 Keeper 删除 Program 和 Keeper 的任何计划任务,基本上维护事物,以便每个任务都不超过一个。

您需要访问任务调度程序 API

于 2013-06-11T14:26:17.207 回答