Pembaruan: Ini sekarang telah terjadi dua hari berturut-turut.
Pembaruan: XML tugas dan gambar terjadwal sekarang termasuk.
Dua server yang berlokasi di London, keduanya Windows 2012, memiliki tugas yang dijadwalkan untuk dijalankan pada pukul 15:00 Senin hingga Jumat. Ini telah diatur selama 5 bulan terakhir tanpa masalah.
Namun, pada hari Senin tanggal 28 Agustus mereka berdua menjalankan tugas yang dijadwalkan pada jam 3 sore dan sekali lagi pada jam 4 sore. Ketika pertama kali dilaporkan, saya pikir itu terlalu kebetulan untuk menjadi hari setelah jam kembali satu jam. Namun, saya gagal menjelaskan mengapa itu terjadi dan jika itu terkait dengan perubahan jam sama sekali.
Log yang relevan dari satu server (log untuk yang lain juga mengikuti pola ini):
Acara 129 15:00:20 Tugas peluncuran tugas Penjadwal Penjadwal "\ 3pm", misalnya "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" dengan ID proses 2388.
Acara 100 15:00:20 Penjadwal Tugas dimulai "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" instance dari tugas "\ 3pm" untuk pengguna "x \ y".
Acara 200 15:00:20 Penjadwal Tugas meluncurkan tindakan "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" sebagai contoh "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" tugas "" 3 sore ".
Acara 201 15:00:23 Penjadwal Tugas berhasil menyelesaikan tugas "\ 3pm", misalnya "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}", action "C: \ Program Files (x86) \ PHP \ v5.4 \ php .exe "dengan kode pengembalian 0.
Acara 129 16:00:20 Tugas peluncuran tugas Penjadwal Penjadwal "\ 3pm", contoh "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" dengan proses ID 1224.
Acara 100 16:00:20 Penjadwal Tugas dimulai "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" instance dari tugas "\ 3pm" untuk pengguna "x \ y".
Acara 200 16:00:20 Penjadwal Tugas meluncurkan tindakan "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" sebagai contoh "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" tugas "\ 3 sore ".
Acara 201 16:00:23 Penjadwal Tugas berhasil menyelesaikan tugas "\ 3pm", instance "{3dd46ca9-c525-4796-86b5-5e513fd45f26}", action "C: \ Program Files (x86) \ PHP \ v5.4 \ php .exe "dengan kode pengembalian 0.
Saya telah melihat pertanyaan ini Tugas terjadwal berjalan dua kali dari waktu ke waktu yang mengarah ke bug di http://support.microsoft.com/kb/2461249 sebagai penyebabnya. Namun, ini tidak termasuk Server 2012 dalam daftar sistem operasinya yang bermasalah.
Saya berjuang untuk menjelaskan ini, bisakah orang lain?
Ekspor XML untuk tugas yang dijadwalkan adalah:
<?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>
29 Oktober 17:00 - Pembaruan - Kedua server kembali menjalankan tugas yang dijadwalkan pada pukul 15:00 dan 16:00. Saya sekarang telah memperbarui file php yang dijalankan oleh scheduler untuk tidak benar-benar melakukan apa-apa sementara saya sedang mencoba menyelesaikannya. Saya berencana memulai kembali satu server untuk melihat apakah ini akan mengubah sesuatu besok.
30 Oktober 08:25 - Pembaruan - Saat mengekspor tugas XML, saya ingat bahwa saya belum memasukkan fakta bahwa tugas terjadwal pada server kedua dibuat dengan mengimpor XML tugas yang dibuat pada yang pertama. Satu-satunya perbedaan antara dua tugas adalah jalur file php yang mereka jalankan dan akun pengguna yang mereka jalankan.
30 Oktober 16:30 - Pembaruan - Server yang telah dimulai ulang tidak menunjukkan perilaku ini lagi, tugas yang dijadwalkan berjalan sekali di atasnya. Saya akan menunggu beberapa hari sebelum memulai kembali server kedua jika ada yang punya ide untuk mendiagnosis mengapa / bagaimana hal itu terjadi
06 November 18:00 - Pembaruan - Kami menerapkan semua pembaruan ke server kedua dan memulai kembali. Kami berasumsi bahwa ini akan menyelesaikan masalah, namun jam 3 sore berlari dua kali lagi - sekali jam 3 sore dan lagi jam 4 sore. Saya melihat pekerjaan terjadwal lainnya dan mereka hanya berlari sekali.
sumber
Jawaban:
Kami hanya melihat masalah yang sama pada server produksi kami (juga Windows Server 2012), yang terjadi minggu ini. Itu juga dimulai setelah jam kami kembali satu jam (yaitu 3 November 2013, di sini di Toronto).
Pembaruan pada 12 November 2013:
Juga, setelah diskusi lebih lanjut dengan Microsoft (oleh sys admin kami), Microsoft mengatakan: "... masalah ini diidentifikasi pada Windows Server 2012 dan telah diperbaiki hanya pada rilis Windows berikutnya yaitu Windows 8.1 / Windows Server 2012 R2" .
sumber
Saya mengalami masalah ini muncul minggu ini sejak pergantian DST. Saya tahu ini bukan jawaban yang bagus, tetapi menghapus dan menciptakan kembali pekerjaan tampaknya untuk menyelesaikan masalah. Saya menguji beberapa pekerjaan yang telah digandakan semalam dan pekerjaan yang diciptakan ulang tidak menduplikasi.
sumber
Kami dapat mereproduksi kesalahan saat pekerjaan dijadwalkan ke UTC + 0 (server Windows 2012 R2).
Misalnya, kami memiliki pekerjaan yang berjalan pada tanggal yang salah yang dijadwalkan pukul 2 pagi.
Karena zona waktu kami adalah UTC + 2, pekerjaan berjalan pada UTC + 0.
Tampaknya Windows memiliki beberapa masalah pembulatan. Mungkin menggunakan UTC secara internal dan jika pekerjaan berjalan tepat pada UTC + 0, beberapa kesalahan pembulatan atau kondisi balapan menyebabkan pekerjaan berjalan pada tanggal yang salah.
Kami juga melihat pekerjaan, yang berjalan sesuai rencana tetapi setelah reboot, melaporkan:
Setelah mengubah waktu yang dijadwalkan menjadi 2:02 pagi, kesalahan hilang.
sumber