web-dev-qa-db-ja.com

タスクスケジューラがタスクを2回実行した

更新:これは2日間続けて行われました。

更新:スケジュールされたタスクと画像のXMLが含まれるようになりました。

ロンドンにある2台のサーバー(どちらもWindows 2012)には、月曜日から金曜日の午後3時に実行するようにスケジュールされたタスクが設定されています。これは過去5か月間問題なく設定されています。

しかし、8月28日月曜日に、彼らは両方とも午後3時にスケジュールされたタスクを実行し、その後午後4時に再び実行しました。それが最初に報告されたとき、私は時計が1時間戻った翌日になるにはあまりにも偶然だと思いました。しかし、なぜそれが起こったのか、それが時計の変更に関連しているかどうかを説明することはできません。

1つのサーバーからの関連ログ(他のログもこのパターンに従います):

イベント129 15:00:20タスクスケジューラ起動タスク "\ 3pm"、インスタンス "C:\ Program Files(x86)\ PHP\v5.4\php.exe"、プロセスID 2388。

イベント100 15:00:20タスクスケジューラは、ユーザー "x\y"の "\ 3pm"タスクの "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}"インスタンスを開始しました。

イベント200 15:00:20タスクスケジューラがタスク "\のインスタンス" {75a3590f-dec1-4dee-bd27-73d63a50a9d7} "のアクション" C:\ Program Files(x86)\ PHP\v5.4\php.exe "を起動しました午後3時」.

イベント201 15:00:23タスクスケジューラはタスク "\ 3pm"、インスタンス "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}"、アクション "C:\ Program Files(x86)\ PHP\v5.4\php .exe」と戻りコード0。

イベント129 16:00:20タスクスケジューラ起動タスク "\ 3pm"、インスタンス "C:\ Program Files(x86)\ PHP\v5.4\php.exe"、プロセスID 1224。

イベント100 16:00:20タスクスケジューラがユーザー "x\y"の "\ 3pm"タスクの "{3dd46ca9-c525-4796-86b5-5e513fd45f26}"インスタンスを開始しました。

イベント200 16:00:20タスクスケジューラがタスク "\のインスタンス" {3dd46ca9-c525-4796-86b5-5e513fd45f26} "でアクション" C:\ Program Files(x86)\ PHP\v5.4\php.exe "を起動しました午後3時」.

イベント201 16:00:23タスクスケジューラはタスク "\ 3pm"、インスタンス "{3dd46ca9-c525-4796-86b5-5e513fd45f26}"、アクション "C:\ Program Files(x86)\ PHP\v5.4\php .exe」と戻りコード0。

私はこの質問を見てきました スケジュールされたタスクが時々2回実行されます これはバグを指します http://support.Microsoft.com/kb/2461249 原因です。ただし、問題のあるオペレーティングシステムのリストにはServer 2012は含まれていません。

これを説明するのに苦労しています、他に誰かいますか?

スケジュールされたタスクのXMLエクスポートは次のとおりです。

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.Microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2013-04-16T14:04:17.4897806</Date>
    <Author>x\y</Author>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2013-04-17T15:00:20</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Monday />
          <Tuesday />
          <Wednesday />
          <Thursday />
          <Friday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>x\y</UserId>
      <LogonType>Password</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>"C:\Program Files (x86)\PHP\v5.4\php.exe"</Command>
      <Arguments>-f "c:\a.php"</Arguments>
    </Exec>
  </Actions>
</Task>

Trigger Configuration for the scheduled taskHistory for the scheduled task

10月29日17:00-更新-両方のサーバーが15:00と16:00に再びスケジュールされたタスクを実行しました。これを解決しようとしている間、実際には何もしないようにスケジューラーによって実行されるphpファイルを更新しました。 1台のサーバーを再起動して、明日何かが変わるかどうかを確認する予定です。

10月30日08:25-更新-タスクXMLをエクスポートするときに、最初のサーバーで作成されたタスクのXMLをインポートすることによって2番目のサーバーでスケジュールされたタスクが作成されたという事実を含まなかったことを思い出しました。 2つのタスクの唯一の違いは、実行中のphpファイルのパスと実行中のユーザーアカウントです。

10月30日16:30-更新-再起動されたサーバーはこの動作を示さなくなり、スケジュールされたタスクが一度実行されました。誰かがなぜ/どのようにして起こったのかを診断するのにアイデアがある場合に備えて、数日待ってから2番目のサーバーを再起動します

11月6日18:00-更新-すべての更新を2番目のサーバーに適用し、再起動しました。これで問題が解決すると想定しましたが、午後3時と午後4時の2回、午後3時が再び実行されました。私は他のスケジュールされたジョブを見て、それらは一度だけ実行されました。

9
Ross Buggins

今週発生した実稼働サーバー(Windows Server 2012)でも同じ問題に気づきました。また、時計が1時間戻った後(2013年11月3日、ここトロント)にも開始されました。

2013年11月12日の更新:

  • 再起動したnot作業(タスクが2回実行され続けた)
  • タスクのエクスポートと再インポートは実行されましたnot作業(タスクは2回実行され続けました)
  • GUIでタスクを手動で再作成すると問題は解決します

また、Microsoftと(システム管理者が)話し合った後、Microsoftは次のように述べています:"...この問題はWindows Server 2012で確認され、Windowsの次のリリースであるWindows 8.1/Windowsでのみ修正されましたサーバー2012 R2 ".

4
Warren Stevens

今週、夏時間の切り替え以降、この問題が発生しました。これは良い答えではありませんが、ジョブを削除して再作成すると問題が解決するようです。私は一晩中複製していたいくつかのジョブをテストしましたが、再作成されたジョブは複製されませんでした。

1
David Broaddus

ジョブがUTC + 0(Windows 2012 R2サーバー)にスケジュールされたときにエラーを再現できました。
例えば。午前2時に予定されていたジョブが間違った日に実行されました。
タイムゾーンがUTC + 2であるため、ジョブはUTC + 0で実行されました。
Windowsには丸めの問題があるようです。おそらく、内部でUTCを使用しており、ジョブが正確にUTC + 0で実行される場合、いくつかの丸めエラーまたは競合状態により、ジョブが誤った日付で実行されます。
また、計画どおりに実行されますが、再起動後に実行されるジョブが報告されました。

オペレーターまたは管理者がリクエストを拒否しました(0x800710E0)

予定時刻を変更した後2:02 am、エラーが消えた。

0
T_H