小编jsh*_*ave的帖子

Windows Task Scheduler错误地为每个触发器生成了多个实例(但需要能够并行运行多个实例)

我有一个任务集,可以通过Windows Task Scheduler(操作系统:带有SP2的64位Windows Server Standard)每30分钟运行一个可执行文件。此任务需要能够同时运行其自身的多个实例,因此请选择此设置:“如果该任务已经在运行,则适用以下规则:并行运行新实例”。(原因:任务处理队列表中的记录,该表可能为空或包含成千上万条记录。每个任务实例都保留要处理的记录块,因此实例不会冲突)

问题是,任务在每个触发间隔产生了多个NEW实例。它仅应每30分钟触发一个新实例。通常会产生2、3、4或更多新实例。此时,可执行文件可以处理重复的新实例,而不会出现重大错误,但是服务器所做的工作超出了它需要做的工作,这使我无休止地感到任务计划程序以这种方式行为不当。到目前为止,我已经尝试解决此问题:

  • 删除并重新创建任务(多次)
  • 重新启动服务器
  • 安装此修补程序:http : //support.microsoft.com/zh-cn/kb/2461249
  • 设置为每30分钟无限期运行
  • 设置为每天每30分钟运行一次,持续时间为一天
  • 设置“跨时区同步” = true
  • 设置“以最高特权运行” = true
  • 设置“延迟任务最多[X]秒的随机延迟” = false(多个新对象-实例在同一秒内全部生成)
  • 设置“延迟任务最多[30]秒的随机延迟” = true(而不是在同一秒内触发,而是在30秒内触发多个新实例)
  • 设置“如果任务失败,请每隔1分钟重新启动” = true
  • 设置“如果任务失败,则每隔1分钟重新启动” = false
  • 设置“错过计划的启动后尽快运行任务” = false(如果设置为true,则问题更严重)

更令人困惑的是:此服务器上的其他一些任务具有相同或相似的设置,并且没有此问题。在修复程序之前,他们有问题,但是在修复程序之后,这种情况很少见。除了这一任务。到底是什么问题?

导出的任务设置如下(使用XXXX替换敏感信息)。我将这一点与另一个没有问题的类似任务进行了比较。唯一的区别是:工作任务具有不同的作者,不同的exe文件,并且每5分钟而不是每30分钟运行一次。

我将把它归为微软有一天需要修复的错误,但是我想在放弃之前将其提供给这里进行审查。

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2014-08-27T10:09:33.7980839</Date>
    <Author>XXXX\XXXX</Author>
    <Description>Links newly downloaded images to products. Resizes and uploads different sizes to XXXX. Updates relevant tables. Logs errors.</Description>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <Repetition>
        <Interval>PT30M</Interval>
        <Duration>P1D</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2015-02-11T19:06:00Z</StartBoundary>
      <Enabled>true</Enabled>
      <RandomDelay>PT30S</RandomDelay>
      <ScheduleByDay> …
Run Code Online (Sandbox Code Playgroud)

triggers scheduled-tasks

6
推荐指数
1
解决办法
4365
查看次数

标签 统计

scheduled-tasks ×1

triggers ×1