0

我试图让一个程序每 7 天运行 13 个小时,然后程序将停止并且任务将结束。但是我可能会在那段时间关闭我的电脑,然后你知道当我再次启动任务时计时器是否会恢复?

例如

我开始我的任务,它运行 5 个小时,然后关闭我的电脑。

第二天我打开我的电脑,任务开始并运行了 8 个小时

然后...

任务会因为已经达到 13 小时而结束,还是会继续运行直到达到 13 小时?

有没有办法让计时器在我关闭电脑时恢复,或者你知道有什么程序可以做到这一点

任何帮助将不胜感激谢谢

4

1 回答 1

0

在某种程度上,这取决于您的计算机或移动设备运行的操作系统。如果您运行的是 Windows 2000+ 或 UNIX 衍生版本(Linux、BSD、OSX),我们可以使用 cron 等工具来启动我们。如果它是移动设备,我们还有更多工作要做。

我假设您有一个 Windows 或 UNIX 设备可以启动。因此,您可以在开始时启动操作系统的 Startup/init.d 层。这仅用于在通电时关闭。例如,我们可能会编写一个 shell 脚本/WSH 脚本,在登录/启动时运行您的程序。此时,您正在运行,但我们想做更多的事情。
由于您的应用程序现在可以由系统启动,因此我们需要确保它保持运行并在必要时重新启动,即使系统未重新启动也是如此。例如,它可能被其他事件杀死/终止。我们的目标是在系统启动时启动您的脚本,并确保它运行 7 小时。假设 UNIX/Linux:

这可以通过两个任务来完成:

  • 一项任务只是确保我们至少每 7 天运行一次
  • 另一个任务确保当我们运行时,我们运行了 7 个小时,不再运行。

我们的第一个任务是一对 cron 脚本。一个运行每 30 分钟。它的唯一任务是检查以确保主要工作任务正在运行或已完成。如果它没有完成,并且由于某种原因没有运行,请启动它。第二个 cron 任务每 7 天运行一次,运行时会清除工作任务中的标记。

我们的主要工作任务在运行时将其工作负载分成 30 分钟的部分。它运行每个段,并在某个地方的临时存储中留下一个“面包屑”——基本上,它说“我又做了 30 分钟的工作”。当它有14个面包屑时,它就完成了。

这一切是如何运作的:

  1. Cron 或 init.d 启动主工作线程
  2. 工作线程运行,希望有 14 个“工作块”并终止。
  3. 每周,其他 cron 任务都会检查我们是否有 14 个块。如果我们这样做了,那就是成功的运行。删除它们并重新开始。如果没有,请重新启动工作任务。
于 2013-05-26T14:51:16.277 回答