2

所以我的情况是我在 Windows 任务计划程序上运行一个应用程序。这个应用程序每天下午 1 点运行一次。该应用程序执行一些查询并将数据传输到 FTP 站点。除了周末我不在这里运行应用程序并且仍然显示 GUI 供我查看之外,所有这些都工作得很好。这似乎使它停止在调度程序上运行,直到我关闭应用程序。所以周六它会运行,当我周一回来时,该应用程序将继续显示供我查看。但是在周日,当调度程序尝试再次运行它时,它将失败,因为该应用程序尚未关闭。

首先让我确认这是任务计划程序应该如何工作的。其次,我有哪些替代方案可以安排每天运行并保持 GUI 显示以便我查看。该应用程序可以运行多次,因为每个会话不会干扰其他会话。因此,如果我去度假一周,我希望当我回来时,该应用程序的 7 个实例已经运行并正在等待我的审查。

感谢 AGP

4

3 回答 3

1

最好的办法是消除 UI 并将消息记录到事件日志或日志文件中。如果您愿意,可以从 CLI 作为一个单独的进程生成 UI,但它应该作为它自己的非子进程来完成。

或者,您可以直接运行批处理文件而不是进程。在批处理文件中,调用“START path_to_exe”而不是 EXE。这将导致批处理文件立即“完成”,并且 exe 在自己的进程中运行。这不是一个好的长期解决方案,但会给您一个临时解决方案来解决您当前的问题。

于 2010-09-27T19:23:28.160 回答
0

这是计划任务系统的默认行为,因为在应用程序实际退出之前它不知道作业是否完成。因此,如果您的应用程序在 24 小时后仍处于打开状态,则将简单地跳过下一次运行,因为就调度程序而言,当前运行“仍在进行”。

就个人而言,我会重新审视您处理工作流程的方式,因为您正在设置一个难以长期管理的场景。

于 2010-09-27T18:14:41.800 回答
0

我建议写入日志文件,而不是显示任何输出和/或错误的 UI。这样,应用程序可以写入,然后退出,您可以在方便时查看日志。这是自动化流程的一个非常常见的解决方案。

于 2010-09-27T20:25:34.650 回答