İş ve görev hatalarını Azure Batch
Azure Batch işleri ve görevleri eklediğinizde, zamanladığınızda veya çalıştırdığınızda çeşitli hatalar oluşabilir. İşleri ve görevleri eklediğinizde oluşan hataları algılamak kolaydır. API, komut satırı veya kullanıcı arabirimi genellikle hataları hemen döndürür. Bu makalede, işler ve görevler gönderildikten sonra oluşan hataları denetleme ve işleme işlemleri ele alınıyor.
İş hataları
İş, çalıştırılacak komut satırlarını belirten bir veya daha fazla görevden oluşan bir grupdur. İş eklerken aşağıdaki isteğe bağlı parametreleri belirtebilirsiniz. Bu parametreler işin nasıl başarısız olabileceğini etkiler.
JobConstraints. İsteğe bağlı olarak, bir işin etkin veya çalışır durumda olabileceği en uzun süreyi ayarlamak için özelliğini kullanabilirsiniz
maxWallClockTime
. İş değerini aşarsamaxWallClockTime
iş JobExecutionInformation içinde olarak ayarlanmışMaxWallClockTimeExpiry
özelliğiyleterminateReason
sonlandırılır.JobPreparationTask. İsteğe bağlı olarak, bir iş görevini çalıştırmak üzere zamanlanmış her işlem düğümünde çalıştırılacak bir iş hazırlama görevi belirtebilirsiniz. Düğüm, iş için bir görevi ilk kez çalıştırmadan önce iş hazırlama görevini çalıştırır. İş hazırlama görevi başarısız olursa, görev çalışmaz ve iş tamamlanmaz.
JobReleaseTask. İsteğe bağlı olarak, iş hazırlama görevi olan işler için bir iş bırakma görevi belirtebilirsiniz. Bir iş sonlandırıldığında, iş bırakma görevi bir iş hazırlama görevi çalıştıran her havuz düğümünde çalışır. bir iş bırakma görevi başarısız olursa, iş yine de bir
completed
duruma geçer.
Azure portal, bu parametreleri İş yöneticisi, hazırlama ve bırakma görevleri ile Toplu İş Ekle iş ekranının Gelişmiş bölümlerinde ayarlayabilirsiniz.
İş özellikleri
JobExecutionInformation içindeki aşağıdaki iş özelliklerini hatalar için denetleyin:
özelliği,
terminateReason
işin iş kısıtlamalarında belirtilen değerimaxWallClockTime
aşıp aşmadiğini ve bu nedenle işin sonlandırıldığını gösterirMaxWallClockTimeExpiry
. İşin özniteliği olarak ayarlanırsaperformExitOptionsJobAction
ve bir görev öğesini belirtenterminatejob
jobAction
bir çıkış koşuluyla başarısız olursaonTaskFailure
bu özellik olarak da ayarlanabilirtaskFailed
.Zamanlama hatası varsa JobSchedulingError özelliği ayarlanır.
İş hazırlama görevleri
Bir iş hazırlama görevinin örneği, düğüm iş için bir görevi ilk kez çalıştırdığında her işlem düğümünde çalışır. İş hazırlama görevini, bir havuzdaki düğüm sayısına kadar birden çok örneğin çalıştırıldığı bir görev şablonu olarak düşünebilirsiniz. Hata olup olmadığını belirlemek için iş hazırlama görev örneklerini denetleyin.
Belirtilen bir iş için iş hazırlama ve bırakma görevlerinin tüm örneklerinin yürütme durumunu listelemek için İş - Liste Hazırlama ve Yayın Görevi Durumu API'sini kullanabilirsiniz. Diğer görevlerde olduğu gibi JobPreparationTaskExecutionInformation da , exitCode
ve result
gibi failureInfo
özelliklerle kullanılabilir.
Bir iş hazırlama görevi çalıştırıldığında, iş hazırlama görevini tetikleyen görev bir taskState öğesine preparing
taşınır. İş hazırlama görevi başarısız olursa, tetikleyen görev duruma geri döner active
ve çalışmaz.
Bir iş hazırlama görevi başarısız olursa, tetikleyen iş görevi çalışmaz. İş tamamlanamadı ve takıldı. Zamanlanabilir görevleri olan başka bir iş yoksa havuz kullanılmayabilir.
İş bırakma görevleri
İş hazırlama görevini çalıştıran her düğümde iş sonlandırıldığında bir iş bırakma görevinin örneği çalışır. Hata olup olmadığını belirlemek için iş bırakma görev örneklerini denetleyin.
Belirtilen bir iş için iş hazırlama ve bırakma görevlerinin tüm örneklerinin yürütme durumunu listelemek için İş - Liste Hazırlama ve Yayın Görevi Durumu API'sini kullanabilirsiniz. Diğer görevlerde olduğu gibi JobReleaseTaskExecutionInformation da , exitCode
ve result
gibi failureInfo
özelliklerle kullanılabilir.
Bir veya daha fazla iş bırakma görevi başarısız olursa, iş hala sonlandırılır ve bir completed
duruma geçer.
Görev hataları
İş görevleri aşağıdaki nedenlerle başarısız olabilir:
- Görev komut satırı başarısız olur ve sıfır olmayan bir çıkış koduyla döndürür.
- Görev için belirtilen bir veya daha fazla
resourceFiles
kişi indirilmiyor. - Görev için belirtilen bir veya daha fazla
outputFiles
kişi karşıya yüklenemez. - Görevin geçen süresi TaskConstraints
maxWallClockTime
içinde belirtilen özelliği aşıyor.
Her durumda, hatalar ve hatalar hakkında bilgi için aşağıdaki özellikleri denetleyin:
TaskExecutionInformation özelliği, bir hata hakkında bilgi sağlayan birden çok özelliğe sahiptir. taskExecutionResult, görevin herhangi bir nedenle başarısız olup olmadığını belirtir ve
exitCode
failureInfo
hata hakkında daha fazla bilgi sağlar.Görev, başarılı veya başarısız olmasına bakılmaksızın her zaman TaskState'e
completed
taşınır.
Görev hatalarının iş üzerindeki ve görev bağımlılıkları üzerindeki etkisini göz önünde bulundurun. Bağımlılıklar ve iş için eylemleri yapılandırmak için ExitConditions belirtebilirsiniz.
- DependencyAction , başarısız göreve bağımlı görevlerin engellenip engellenmeyeceğini veya çalıştırılmayacağını denetler.
- JobAction , başarısız görevin işin devre dışı bırakılmasına, sonlandırılmasına veya değişmesine neden olup olmadığını denetler.
Görev komut satırları
Görev komut satırları işlem düğümlerinde kabuk altında çalışmaz, bu nedenle ortam değişkeni genişletme gibi kabuk özelliklerini yerel olarak kullanamazlar. Bu tür özelliklerden yararlanmak için komut satırında kabuğu çağırmanız gerekir. Daha fazla bilgi için bkz. Ortam değişkenlerinin komut satırı genişletmesi.
Görev komut satırı çıktısı stderr.txt ve stdout.txt dosyalarına yazar. Uygulamanız, uygulamaya özgü günlük dosyalarına da yazabilir. Sorunları hemen algılamak ve tanılamak için uygulamanız için kapsamlı hata denetimi uyguladığınızdan emin olun.
Görev günlükleri
Bir görevi çalıştıran havuz düğümü hala varsa, görev günlüğü dosyalarını alabilir ve görüntüleyebilirsiniz. Dosya - Görevden Al gibi çeşitli API'ler görev dosyalarının listelenmesine ve alınmasına izin verir. Ayrıca, Azure portal kullanarak bir görev veya düğüm için günlük dosyalarını listeleyebilir ve görüntüleyebilirsiniz.
Bir düğümün Genel Bakış sayfasının üst kısmında Toplu iş günlüklerini karşıya yükle'yi seçin.
Batch günlüklerini karşıya yükle sayfasında Depolama kapsayıcısı seç'i, karşıya yüklenecek Azure Depolama kapsayıcısını ve ardından Karşıya yüklemeyi başlat'ı seçin.
Günlükleri depolama kapsayıcısı sayfasından görüntüleyebilir, açabilir veya indirebilirsiniz.
Çıkış dosyaları
Batch havuzları ve havuz düğümleri genellikle kısa ömürlü olduğundan ve düğümlerin sürekli olarak eklenip silindiği için, iş çalışırken günlük dosyalarını kaydetmek en iyisidir. Görev çıkış dosyaları, günlük dosyalarını Azure Depolama'ya kaydetmenin kullanışlı bir yoludur. Daha fazla bilgi için bkz . Batch hizmeti API'siyle görev verilerini Azure Depolama'da kalıcı hale getirmek.
Her dosya karşıya yüklemesinde Batch, işlem düğümüne fileuploadout.txt ve fileuploaderr.txtolmak üzere iki günlük dosyası yazar. Belirli bir hata hakkında daha fazla bilgi edinmek için bu günlük dosyalarını inceleyebilirsiniz. Örneğin, görevin kendisi çalıştıramadığı için dosya karşıya yükleme girişiminde bulunulamıyorsa, bu günlük dosyaları mevcut değildir.
Sonraki adımlar
- Batch işleri ve görevleri ile işhazırlama ve bırakma görevleri hakkında daha fazla bilgi edinin.
- Batch havuzu ve düğüm hataları hakkında bilgi edinin.