Windows Server 2016 zamanlanmış görev zamanlaması gelecekte olmalıdır


20

İzleme için kullanılan yaklaşık 20 zamanlanmış göreve sahip bir 2012 sunucumuz var. Değiştirmek için bir 2016 sunucusu oluşturduk ve görevleri yeni sunucuya taşırken bir sorunla karşılaştım. Görevlerimizin çoğu birkaç dakikada bir yapılır.

Server 2012'de görevi günün geçerli saatinin 1200'ünde başlayacak şekilde planlayacağız (böylece geçmişte bir zaman) ve her X dakikada bir tekrarlayacağız. Görev bir sonraki planlanan saatinde başlayacaktır. Mükemmel.

Server 2016'da geçmişte başlayan programlar çalışmaz. Bu yüzden gelecekte başlayacak şekilde programlamamız gerekiyordu. Yeniden başlatana kadar bu iyi. Şimdi başlangıç ​​zamanı geçmişte ve çalışmaz. Başarısız bir çalışma bile kaydetmez. Sonraki Çalışma Zamanı sütunu, çalıştırılması gerektiğini ancak çalışmadığını gösterir.

Mevcut Program Örneği

İki tetikleyici oluşturmanın yanı sıra, biri gelecekte başlayacak ve diğeri yeniden başlatıldığında başlayacak (bazı görevlerin yalnızca belirtilen zamanlarda çalışması gerektiğinden yapmak istemiyoruz), daha iyi bir yol var mı? Bu bir hata gibi görünüyor. 2012 sürümü harika çalıştı.

GÜNCELLEME

Bunun için bir çözüm var. Süresiz çalışan bir zaman çizelgesi oluşturun. Bu, beklediğiniz gibi yeniden başlatıldıktan sonra çalışır. Bu "garip" ama 3 dakikada bir ya da her neyse çalıştırmak istediğiniz şeyler için iyi çalışır programları için harika olmadığını biliyorum.


1
Aynı sorunu yaşıyorum ve bir düzeltme bulamadım. Senin varmi? Öyle büyük bir böcek gibi görünüyor. Ayrıca Google Chrome'un görevini buldu, ancak yaptığım görev işe yaramadı. Belki daha derin bir izin meselesi?
Tyler

Gelecekte başlayan ve süresiz olarak çalışan bir kerelik bir program oluştursaydım işe yaradı. Henüz başka bir şey bulamadık.
SteveB

Böyle garip bir hata sisteme girebilir. Sadece sana inanamıyorum ve onu buldum. Çözülmesi için raporlamanın bir yolu var mı?
Tyler

Windows Server 2012'den 2016'ya geçerken bu sorun da beni yakaladı ve bunun için bir açıklama bulduğumu düşünüyorum (cevabıma bakın). Windows'un önceki sürümlerinin farklı davrandığından emin misiniz?
Heinzi

2
Evet. 2012 hepimizin olması gerektiği gibi davrandı.
SteveB

Yanıtlar:


5

Microsoft ile dün açtığım bir destek bileti aracılığıyla bunu doğruladım, bunun bir hata olduğunu. Destek teknolojisi, dahili olarak bir hata olarak sınıflandırıldığını ve bir yama geliştirildiğini doğruladı. Temmuz / Ağustos için yamanın hedefinin yayınlanma tarihi verildi.

Bu, hem Windows 10 hem de Server 2016'yı etkiler. Test sistemlerim, dünün toplu güncelleştirmesine eklenmiştir. Sorun, Server 2012 R2 ve Windows 7'de oluşmadı.

EDIT - Muhtemelen Ağustos ayı, ancak kesinlikle Eylül 2017 itibariyle, bu sorun test ettiğim sistemlerde düzeltildi.


Bilgi için teşekkürler! Hayal kırıklığına uğradım. Görevlerim eski bir Server 2012 kutusundan yeni bir Server 2016 makinesine alındı. İşte o zaman bu sorunu görmeye başladım.
David Gunderson

Çabalarınızı takdir edin. Bir yamanın zaten yayınlanıp yayınlanmadığını biliyor musunuz (Ekim 2017)? ilgili bir KB makalesine veya bu tür bir şeye referansınız var mı?
yossiz74

Bunun için bir KB yok, ancak Eylül 2017 kümülatif yamasından bu yana sorunun ortadan kalktığını test ettim, bu yüzden bu sorunun düzeltildiğine inanıyorum.
Tom Collins

Şubat 2018 itibarıyla, Win Server 2016'da, "Her XX dakikada bir Görevi Tekrarla" görevleri devre dışı bırakılıp yeniden etkinleştirirsem çalışmaz.
Ben Amada

4

Bu sorun yalnızca Repeat task every: ...seçenek ayarlı görevleri etkiliyor gibi görünüyor .

Şimdiye kadar, Görev Zamanlayıcı'da trigger at X, then repeat every 10 minutesyazmak için gereksiz yere karmaşık bir yol olduğu izlenimi altındaydım trigger at every xx:x0.

Görünüşe göre, öyle değil. Görünüşe göre, tam olarak söylediği anlamına gelir: Görev X ve daha sonra tetiklenir ve ancak o zaman tekrarlanır. İlk tetikleyici yok, tekrar yok. trigger at every xx:x0Görev Zamanlayıcı zamanlamak için basit bir yolu yok gibi görünüyor (ya da var mı? Bu iyi bir ayrı Serverfault soru yapabilir.) "Sonraki Çalışma Zamanı" sütun farklı bir şey gösteriyor aslında çok yararlı değil.

Görevi her gün (sadece bir gün yerine) 12: 00'da çalışacak şekilde zamanlayarak ve sonra her ...gün 1 dakika boyunca tekrarlayarak bu sorunu "çözeriz" . Bu, yeniden başlatma meydana geldiğinde saat 12: 00'de görevlerin devam edeceği anlamına gelir. İdeal değil, ama burada kabul edilebilir bir uzlaşma.

Sanırım her saat için bir tetikleyici oluşturarak "görev kesinti süresini" 1 saate düşürebilir ve görevin daha sonra her ...dakika 1 saat boyunca tekrarlanmasını sağlayabilirsiniz .

Şaşırtıcı bir şekilde, her zaman böyle olmuştur ( bu cevabın ilk yorumuna bakın ), şimdiye kadar hiç fark etmedik. Bağlantılı cevabın diğer yorumlarına göre, bu sorunu çözmenin kanonik yolu Run task as soon as possible after a scheduled start is missedseçeneği etkinleştirmektir .

Yani, evet, bir hata, ama gerçek zamanlama değil, buggy olan "Sonraki Çalışma Zamanı" sütunu.


Bir gün için zamanlama ile ilgili tek sorun, bunlar izleme görevlerimizden bazılarıdır. Onlarsız saatler gitmek istemiyorum.
SteveB

-1

1 . Windows 2016 Server mutlaka işinizde şu seçenekleri gerektirir:

  • Zamanlama başlangıcı kaçırıldıktan sonra görevi mümkün olan en kısa sürede çalıştırın veya
  • Görev başarısız olursa, her

Bu seçenekleri ekran görüntüsünde not ettim

2 . Ek tetikleyici ekleyin. Gibi:

  • Görev oluştururken veya düzenlerken
  • Başladığında

vb. anlamı dahilinde: bir görevi istenen zamanda başlayacak şekilde taşımak için

3 . Windows 2016'daki bazı görevlerde - bu yaklaşımı uyguladı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.