当前位置: 首页 > 知识库问答 >
问题:

任务调度程序说任务正在运行,但它不是

那安宁
2023-03-14

我正在尝试创建计划任务以运行批处理文件。我知道我的批处理文件运行良好,因为手动运行它没有问题。但是,当任务调用它时,它会说它正在运行,但它不是。我知道它没有运行的原因是它调用了一个python脚本,python脚本发送了一封电子邮件,告诉我进程已经开始了。我没有收到那封电子邮件。python进程不会花费太长的时间(最多5分钟),而且任务一直说它在一小时后“运行”。

我有当前设置与运行用户是否登录或不(不似乎在所有工作,如果我有它作为运行仅当用户我们登录,因为状态永远不会改变从准备好,即使我告诉它运行)...我也有“以最高权限运行”的设置,只有“程序/脚本”下批处理文件的名称和“启动”下批处理文件的路径。我还想指出,我有用户帐户作为"DOMAIN\管理员"。

然而,我尝试了其他的称呼方式。我尝试将批处理文件的整个路径放在“Program/script”(G:\GOM3\u Update\FeatureServices\copies\test.bat)下,或者将路径放在python程序中,然后将路径放在python脚本中作为参数,但这似乎也不起作用。

我不确定这个问题是由windows 10的一些主要安全设置引起的,还是由任务计划程序设置中的一些次要设置引起的。

以下是我当前的设置:

中开始的完整路径是:“G:\GOM3\U更新\FeatureServices\copies\”

批处理文件:

"C:\Users\Administrator.DOMAIN\AppData\Local\ESRI\conda\envs\arcgispro-py3-clone\python.exe" "G:\GOM3_Update\FeatureServices\copies\database.py"

共有1个答案

赵征
2023-03-14

根据我个人的经验,这通常是环境问题,也就是当前工作目录等。。

此外,请确保单击任务计划程序右窗格中的刷新按钮,因为除非手动刷新,否则它不会更新任务状态。如果你这样做,你可能会更快地看到它从“运行”变成“准备好”。我觉得你的屏幕不刷新的原因是因为通常任务计划程序不允许任何计划的任务执行超过1小时,你说你的仍然说'运行'一个小时后。

退出代码0表示任务计划程序未捕获任何错误。

另一个想法是在执行任何操作之前,将批处理开始脚本(批处理内部)记录到日志文件中。并对python文件执行相同的操作。这将帮助你缩小问题的范围。

 类似资料:
  • 我正在尝试在server 2012任务计划程序中计划bcp作业。当我双击批处理文件时,它工作正常。它包括以下行: 该文件是从命令行创建的。调度程序具有: < li >操作:启动一个程序 < li >脚本:< code > D:\ DATA \ my batch . bat < li >开始于:< code>D:\Data 我正在为其他计划任务使用相同的帐户,它们运行良好。

  • 我在64位Windows Server 2008 R2上设置了一个简单的批处理文件。我试图将其设置为在Windows任务调度程序下运行,将管理员帐户指定为用户。当使用相同的管理帐户登录到服务器时,我可以手动运行批处理文件。但是,在任务计划程序中,任务只是运行和挂起。下面是批处理文件中的代码,将文件从管理员帐户可以访问的映射驱动器中移动:

  • 每隔一段时间需要调度任务执行,也许你想注册一个任务在客户端完成连接5分钟后执行,一个常见的用例是发送一个消息“你还活着?”到远端通,如果远端没有反应,则可以关闭通道(连接)和释放资源。 本节介绍使用强大的 EventLoop 实现任务调度,还会简单介绍 Java API的任务调度,以方便和 Netty 比较加深理解。 使用普通的 Java API 调度任务 在 Java 中使用 JDK 提供的 S

  • 简介 在过去,开发者必须在服务器上为每个任务生成单独的 Cron 项目。而令人头疼的是任务调度不受源代码控制,而且必须通过 SSH 连接到服务器上来增加 Cron 项目。 Laravel 的命令调度程序允许你在 Laravel 中对命令调度进行清晰流畅的定义。并且在使用调度程序时,只需要在服务器上增加一条 Cron 项目即可。调度是在 app/Console/Kernel.php 文件的 sche

  • 基本任务调度 方案1: 通过 @Cron 注解,这个需要依赖 cron4j 框架: //1分钟执行一次 @Cron("*/1 * * * *") public class MyTask implements Runnable { @Override public void run() { System.out.println("task running...");

  • 我有一台windows server 2012,在那里我需要移动一些