İş ve görev hatası denetimi
İşler ve görevler eklenirken oluşabilecek çeşitli hatalar vardır. API, CLı veya Kullanıcı arabirimi tarafından hemen herhangi bir başarısızlık döndürüldüğünden, bu işlemler için hataların algılanması basittir. Ancak, daha sonra, işler ve görevler zamanlandığında ve çalıştırıldığında oluşabilecek sorunlar da vardır.
Bu makale, işler ve görevler gönderildikten sonra oluşabilecek hataları ve bunların nasıl kontrol alınacağını ve işleneceğini ele alır.
İşler
Bir iş, bir veya daha fazla görevin, aslında çalıştırılacak komut satırlarını belirten görevlerle gruplandırmasıdır.
Bir iş eklenirken, işin başarısız olmasına neden olabilecek aşağıdaki parametreler belirtilebilir:
- İş kısıtlamaları
maxWallClockTimeÖzellik isteğe bağlı olarak, bir işin etkin veya çalışıyor olduğu maksimum süreyi ayarlamak için belirtilebilir. Bu süre aşılırsa, iş
terminateReasonIçin ExecutionInfo 'da ayarlanan özellik ile iş sonlandırılır.
-
- İş hazırlama görevi
- Belirtilmişse, bir iş için bir iş için görev ilk kez çalıştırıldığında bir iş hazırlama görevi çalıştırılır. İş hazırlama görevi başarısız olabilir, bu, görevin çalıştırılmadığından ve işin tamamlanmemesine neden olacak.
- İş serbest bırakma görevi
- İş serbest bırakma görevi, yalnızca bir iş hazırlama görevi yapılandırılmışsa belirtilebilir. Bir iş sonlandırıldığı zaman iş bırakma görevi, bir iş hazırlama görevinin çalıştırıldığı havuz düğümlerinin her birinde çalıştırılır. İş serbest bırakma görevi başarısız olabilir, ancak iş yine de bir duruma geçmeyecektir
completed.
- İş serbest bırakma görevi, yalnızca bir iş hazırlama görevi yapılandırılmışsa belirtilebilir. Bir iş sonlandırıldığı zaman iş bırakma görevi, bir iş hazırlama görevinin çalıştırıldığı havuz düğümlerinin her birinde çalıştırılır. İş serbest bırakma görevi başarısız olabilir, ancak iş yine de bir duruma geçmeyecektir
İş özellikleri
Aşağıdaki iş özellikleri hatalar için denetlenmelidir:
- 'ExecutionInfo':
terminateReasonÖzelliği,
maxWallClockTimeiş kısıtlamalarında belirtilen değerinin aşıldığını ve bu nedenle işin sonlandırıldığı belirten değerlere sahip olabilir. İş özelliği uygun şekilde ayarlandıysa bir görevin başarısız olduğunu belirtmek için de ayarlanabilir
onTaskFailure.
- SchedulingError özelliği, bir zamanlama hatası varsa ayarlanır.
-
İş hazırlama görevleri
İş için bir iş hazırlama görevi belirtilmişse bu görevin bir örneği, bir düğümde iş için bir görev çalıştırıldığında ilk kez çalıştırılır. İş üzerinde yapılandırılan iş hazırlama görevi, bir havuzdaki düğüm sayısına kadar, birden çok iş hazırlama görevi örneği çalıştırılan bir görev şablonu olarak düşünülebilir.
Hata olup olmadığını anlamak için iş hazırlama görev örnekleri denetlenmelidir:
- Bir iş hazırlama görevi çalıştırıldığında, iş hazırlama görevini tetikleyen görev durumuna geçer
preparing; iş hazırlama görevi başarısız olursa, tetikleme görevi
activeduruma döndürülür ve çalıştırılmaz.
- İş hazırlama görevinin çalıştırıldığı tüm örnekler, iş için liste hazırlama ve bırakma görev durumu API 'si kullanılarak alınabilir. Herhangi bir görevde olduğu gibi,, ve gibi özelliklerle birlikte bulunan yürütme bilgileri de vardır
failureInfo
exitCode
result.
- İş hazırlama görevleri başarısız olursa, tetikleme işi görevleri çalıştırılmayacak, iş tamamlanmaz ve takılacaktır. Zamanlanabilecek görevlerle başka iş yoksa, havuz unutilized go görünebilir.
İş bırakma görevleri
İş için bir iş serbest bırakma görevi belirtilmişse, bir iş sonlandırıldığında iş bırakma görevinin bir örneği, iş hazırlama görevinin çalıştırıldığı her havuz düğümünde çalıştırılır. İş serbest bırakma görevi örnekleri, hata olup olmadığını anlamak için denetlenmelidir:
- İş yayınlama görevinin çalıştırılmakta olan tüm örnekleri, API listesi hazırlama ve sürüm görevinin durumukullanılarak iş 'ten elde edilebilir. Herhangi bir görevde olduğu gibi,, ve gibi özelliklerle birlikte bulunan yürütme bilgileri de vardır
failureInfo
exitCode
result.
- Bir veya daha fazla iş bırakma görevi başarısız olursa, iş hala sonlandırılır ve bir
completedduruma geçer.
Görevler
İş görevleri birden çok nedenden dolayı başarısız olabilir:
- Görev komut satırı, sıfır olmayan bir çıkış koduyla dönerek başarısız olur.
resourceFilesBir görev için belirtilmiş, ancak bir veya daha fazla dosya indirmediğiniz bir hata oluştu.
outputFilesBir görev için belirtilmiş, ancak bir veya daha fazla dosyanın karşıya yüklenmedi olması nedeniyle bir hata oluştu.
- Görev kısıtlamalarında özelliği tarafından belirtilen görev için geçen süre
maxWallClockTimeaşıldı.
Her durumda, hatalar ve hatalar hakkında bilgi için aşağıdaki özellikler denetlenmelidir:
- Tasks ExecutionInfo özelliği bir hata hakkında bilgi sağlayan birden çok özellik içerir. sonuç , ile ilgili herhangi bir nedenle görevin başarısız olup olmadığını gösterir
exitCodeve
failureInfohata hakkında daha fazla bilgi sağlar.
- Görev,
completedbaşarılı veya başarısız olsun etmeksizin her zaman durumataşınır.
Görev hatalarının iş ve görev bağımlılıklarındaki etkileri göz önünde bulundurulmalıdır. Bir görevin bağımlılıklar ve iş için bir eylem yapılandırması için Exitconditions özelliği belirtilebilir.
- Bağımlılıklar için DependencyAction , başarısız göreve bağımlı görevlerin engellenip engellenmeyeceğini veya çalıştırılmadığını denetler.
- Bu iş için, Jobaction başarısız görevin devre dışı, sonlandırılmış veya sola değiştirilmemiş iş olup olmadığını denetler.
Görev komut satırı sorunları
Görev komut satırı çalıştırıldığında, çıkış ve ' a yazılır
stderr.txt
stdout.txt . Ayrıca, uygulama uygulamaya özgü günlük dosyalarına yazabilir.
Bir görevin çalıştırıldığı havuz düğümü hala mevcutsa, günlük dosyaları elde edilebilir ve görüntülenebilir. Örneğin Azure portal, bir görev veya havuz düğümü için günlük dosyalarını listeler ve görüntüleyebilir. Aynı zamanda birden çok API, görev dosyalarının da listelenmesine ve almaya izin verir (örneğin, görevden al).
Havuzlar ve havuz düğümleri genellikle daha kısa olduğundan, düğümlerin sürekli olarak eklenip silindiği, günlük dosyalarının kaydedilmesini öneririz. Görev çıktı dosyaları , günlük dosyalarını Azure depolama 'ya kaydetmek için kullanışlı bir yoldur.
İşlem düğümlerinde görevler tarafından yürütülen komut satırları bir kabukta çalıştırılmadığından, ortam değişkeni genişletmesi gibi kabuk özelliklerinden yerel olarak yararlanamazlar. Bu özelliklerden yararlanmak için, komut satırında kabuğu çağırmanızgerekir.
Çıkış dosyası sorunları
Her dosya yükleme işleminde toplu Işlem, işlem düğümüne iki günlük dosyası yazar
fileuploadout.txt ve
fileuploaderr.txt . Belirli bir hata hakkında daha fazla bilgi edinmek için bu günlük dosyalarını inceleyebilirsiniz. Dosya yüklemesinin hiçbir zaman denenmediği durumlarda (örneğin, görevin kendisi çalıştırılmadığından), bu günlük dosyaları mevcut olmayacaktır.
Sonraki adımlar
- Uygulamanızın kapsamlı hata denetimi uyguladığından emin olun; sorunları saptamak ve tanılamak için kritik öneme sahip olabilir.
- İşler ve görevlerhakkında daha fazla bilgi edinin.