繁体   English   中英

如何根据计划时间暂停/恢复进度?

[英]How to suspend/resume a progress based on the scheduled time?

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

我有一个时间表输入,如下所示:

调度程序输入

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

似乎复杂的工作。 请给我一个更好的解决方法。

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

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

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

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

任何时候修改时间表,您只需要运行Keeper程序,它就会弄清楚它需要做什么:挂起程序,安排程序再次运行,以及安排自身在下一个暂停时间再次运行。

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

您需要访问Task Scheduler API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM