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


10

更新:これは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>

スケジュールされたタスクのトリガー構成 スケジュールされたタスクの履歴

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時が再び実行されました。私は他のスケジュールされたジョブを見て、それらは一度だけ実行されました。


翌日の場合は時刻の変更が原因である可能性は低く、ログの時刻は正確な時刻を反映しています(つまり、時刻の問題であった場合、2つ実行されたが、午後3時に両方とも実行されなかったことがわかります)。正直なところ、それが8月に一度だけ発生した場合は、「バグ/異常/幽霊」と言って次に進む傾向があります。しかし、多分他の誰かがここであなたのためにいくつかの光を当てることができます...
TheCleaner 2013年

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

1
パラメータを実際に確認できるように、スケジュールされたタスクのXMLエクスポートを投稿してください。
Ryan Ries 2013年

不確かなことですが、トリガーオプションの「タイムゾーン間で同期」をチェックしましたか。その後、タスクスケジューラはUTCを使用しています。
Manfred Schmidt

いいえ、チェックされていません。しかし、それがチェックされていると、私はそれが私が必要とする行動だとは思いません。タスクを現地時間午後3時に実行したいのですが、チェックされていると、BST中に1時間実行されると思いますか?
ロスブギンズ2013年

回答:


4

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

2013年11月12日の更新:

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

また、Microsoft(システム管理者による)とのさらなる議論の後に、Microsoftは次のように述べ ています。 。


これらもXMLファイルによってインポートされましたか?Stijnの回答への私のコメントを参照してください
Ross Buggins 2013年

約10のタスクがあります。手動で入力したもの(最近作成したタスクなので、その起源は確かです)には、2回実行の問題はありません。他のタスクの一部はXMLからインポートされたため、問題があります。明日、再起動を試みます。Microsoftのフォローアップ
Warren Stevens

もう一つの注意:私たちは、ないではないタスクのいずれかをチェックし、「タイムゾーンを越え同期」を持っている(場合には、その事項)
ウォーレン・スティーヴンス

私たちのシステム管理者から:「... Microsoftとのセッションがあったが、これは以前に見たことがあるが、何が原因であるか正確には言えない。今のところ、サーバーを再起動してタスクを再作成してみてください。修正プログラムはありません。影響を受ける他の顧客はタスクを再起動または再作成することで解決できると彼らが言ったので、これを解決するためにインストール可能... "
Warren Stevens

1
私たちはWindows 2016を実行していますが、同じ問題(Windows 2012からインポートされたジョブ)
Greg

1

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


0

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

オペレーターまたは管理者が要求を拒否しました(0x800710E0)

予定時刻を例えば午前2時2分に変更すると、エラーが消えました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.