Windows任务计划程序只运行一次应用程序

时间:2010-09-27 18:02:38

标签: windows service task scheduler

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

首先让我确认这是Task Scheduler的工作方式。其次,我有什么办法安排每天运行并保持GUI显示,以便我可以查看。应用程序可以运行多次,因为每个会话不会干扰其他会话。因此,如果我在度假一周后离开,我会期待当我回来时,该应用程序的7个实例已经运行并等待我的审核。

由于 AGP

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

我个人会重新访问您处理工作流程的方式,因为您正在设置一个难以长期管理的方案。

答案 2 :(得分:0)

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