【问题标题】:Running SCHTasks overs a large period of time gives strange results长时间运行 SCHTasks 会产生奇怪的结果
【发布时间】:2012-02-29 13:35:53
【问题描述】:

我们有一个不久前开发的 Windows 服务,它使用远程服务器上的大量计划任务。这似乎是一个坏主意,而且可能确实如此,但是由于我们正在与另一家只能以这种方式激活其系统的公司合作,因此我们实际上没有更多的选择,只能选择它。

为了实现这一点,我们告诉使用 SCHTASKS 命令,它可以轻松地在另一台远程服务器上启动服务。然后,我们将此调用的输出存储到日志中。通常,我们得到这个:

2012-02-06 09:40:55 : SUCCESS: Attempted to run the scheduled task "W_PALREI".

这是我们在一切正常时收到的正常信息。有时我们会得到这个:

2012-02-20 15:53:29 : INFO: scheduled task "W_PALMO2" is currently running.
SUCCESS: Attempted to run the scheduled task "W_PALMO2".

这仍然不是什么严重的问题,因为我们知道该任务可能会占用一些时间,而且我们知道它很快就会恢复可用。有时我们会得到这个:

2012-02-13 08:50:03 : INFO: Scheduled task "W_PALMO2" has already been disabled.

这不好,但我们知道这意味着有人禁用了另一台服务器上的任务,因此我们可以采取相应措施。

这就是奇怪的地方。我们注意到一段时间后(大约持续运行 2 周),任务不会响应。每次我们检查时,似乎一切都运行良好(服务正在运行,我们可以看到正在处理的数据库的内容),但任务仍然无法启动。当我们查看日志文件时,我们发现:

2012-02-22 15:50:15 : ERROR: Class does not exist.

过了一会儿,我们收到了这条消息:

2012-02-22 15:21:15 : ERROR: Not enough storage is available to process this command.

然后出现另一条消息,依此类推。过了一会儿,我们就搞定了

2012-02-22 16:32:38 : 

意味着 Process.Start 不再获得输出,或者 SCHTASKS 不再发送它,或者由于某种原因进程停止被调用。我在 Google 上查看过,但找不到任何关于 SCHTASKS 给出的信息,所以我怀疑 process.start 可能是问题

有没有人得到这个以及如何纠正这个?或者是进程启动,是否有任何其他方法可以从远程服务器正确启动任务,前提是您拥有凭据...?

我们可能想在服务器上检查以诊断问题的任何其他内容吗? 谢谢,

【问题讨论】:

    标签: .net scheduled-tasks windows-task-scheduler


    【解决方案1】:

    或者是进程开始了吗,有没有其他方法可以正确 从远程服务器启动任务,前提是您拥有 凭据...?

    有多种方法可以远程启动进程...我想到了几个选项:

    • Power Shell 脚本的远程执行。但是,如果公司让您从远程位置自动执行计划任务,那么他们精通和/或愿意设置执行的可能性不大。
    • 您的 Process.Start 调用究竟是什么样的?可能还有其他一些方法可以构建此调用。

    有人需要对远程机器进行更多诊断。或者只是想出一个计划,每 n 天对机器进行一次电源循环。

    一些值得一看的地方:

    • 事件日志。看看那里是否记录了任何错误。
    • 性能监视器。监控内存使用情况,看看内存是否没有被清理。

    【讨论】:

      猜你喜欢
      • 2015-10-04
      • 2011-11-26
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多