任务调度程序,在Windows中终止启动程序

时间:2014-04-07 12:28:43

标签: windows task scheduler

在我的工作中,我们设置了任务调度程序,定期启动java程序来读取邮件。 该任务计划每分钟运行一次,并调用一个启动java程序的.bat文件。

现在问题。 一个月左右,jave.exe进程无法正常结束,所以在尝试运行的下一分钟我得到:

任务计划程序无法启动" \ XXX作业"用户" NT AUTHORITY \ System"的任务。附加数据:错误值:2147750687。

然后我每分钟都收到一条消息,直到我从任务管理器终止java.exe。

现在我的问题是,在任务调度程序中有一些选项可供选择。 在设置下有"如果任务已在运行,则以下规则适用" 如果我然后选择"停止现有实例" 这会停止java.exe还是只停止任务?或者有更好的方法。

欢迎提出一些建议。

3 个答案:

答案 0 :(得分:5)

在批处理文件结束时终止任务。

taskkill /im java.exe

java.exe可能是您计划杀死的任何进程。您可以在批处理文件中添加多行tasskill,以一次终止多个进程。

taskkill /im java.exe
taskkill /im explorer.exe
taskkill /im svhost.exe

答案 1 :(得分:4)

  

“停止现有实例”:任务计划程序服务将停止   已运行的任务的实例,并运行新的   任务的实例。

这意味着它会终止调度程序启动的进程,cmd.exe就像你告诉我们你的程序是从批处理中启动的那样。

现在,我不熟悉java,但我想停止批处理会杀死启动时的java进程,如果它没有作为服务启动的话。

然后,调度程序将运行另一个cmd进程并再次执行批处理

答案 2 :(得分:0)

更好的解决方案是修复java挂起。当进程每分钟开始时,在java程序中应该有代码自动退出,如果完成任务需要一分多钟。另一种方法是在批处理文件中,您可以在1分钟后终止进程。使用taskkill / im来终止进程。