İş 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ş terminateReason Iç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 .

İş özellikleri

Aşağıdaki iş özellikleri hatalar için denetlenmelidir:

  • 'ExecutionInfo':
    • terminateReasonÖzelliği, maxWallClockTime iş 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 active duruma 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 completed duruma 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 maxWallClockTime aşı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 exitCode ve failureInfo hata hakkında daha fazla bilgi sağlar.
  • Görev, completed baş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.