JobManagerTask Třída
Určuje podrobnosti úlohy Správce úloh.
Úloha Správce úloh se automaticky spustí při vytvoření úlohy. Služba Batch se pokusí naplánovat úlohu Správce úloh před všemi ostatními úkoly v úloze. Při zmenšení fondu se služba Batch pokusí co nejdéle zachovat uzly, ve kterých jsou úkoly Správce úloh spuštěné (to znamená, že výpočetní uzly se spuštěnými normálními úkoly se odeberou před výpočetními uzly, na kterých běží úkoly Správce úloh). Když úloha Správce úloh selže a je třeba ji restartovat, systém se ji pokusí naplánovat s nejvyšší prioritou. Pokud nejsou k dispozici žádné nečinné výpočetní uzly, může systém ukončit jednu ze spuštěných úloh ve fondu a vrátit ji do fronty, aby uvolnil místo pro restartování úlohy správce úloh. Všimněte si, že úkol Správce úloh v jedné úloze nemá prioritu před úkoly v jiných úlohách. V rámci úloh se zobrazují pouze priority na úrovni úloh. Pokud je třeba například restartovat Správce úloh s prioritou 0 Úloha, nevytěsní úkoly s prioritou 1. Služba Batch bude opakovat úlohy při aktivaci operace obnovení na uzlu. Mezi příklady operací obnovení patří (mimo jiné) restartování uzlu, který není v pořádku, nebo zmizení výpočetního uzlu kvůli selhání hostitele. Opakování kvůli operacím obnovení jsou nezávislé na a nezapočítávají se do hodnoty maxTaskRetryCount. I když je hodnota maxTaskRetryCount 0, může dojít k internímu opakování kvůli operaci obnovení. Z tohoto důvodu by všechny úkoly měly být idempotentní. To znamená, že úlohy musí tolerovat přerušení a restartování bez poškození nebo duplicitních dat. Osvědčeným postupem pro dlouhotrvající úlohy je použít nějakou formu vytváření kontrolních bodů.
Aby bylo možné odesílat do Azure, musí být vyplněny všechny požadované parametry.
- Dědičnost
-
JobManagerTask
Konstruktor
JobManagerTask(*, id: str, command_line: str, display_name: str = None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, constraints=None, required_slots: int = None, kill_job_on_completion: bool = None, user_identity=None, run_exclusive: bool = None, application_package_references=None, authentication_token_settings=None, allow_low_priority_node: bool = None, **kwargs)
Parametry
- id
- str
Povinná hodnota. ID může obsahovat libovolnou kombinaci alfanumerických znaků včetně pomlček a podtržítků a nesmí obsahovat více než 64 znaků.
- display_name
- str
Nemusí být jedinečný a může obsahovat jakékoli znaky Unicode až do maximální délky 1024.
- command_line
- str
Povinná hodnota. Příkazový řádek se nespouští v prostředí, a proto nemůže využívat funkce prostředí, jako je rozšíření proměnné prostředí. Pokud chcete tyto funkce využít, měli byste vyvolat prostředí v příkazovém řádku, například pomocí příkazu "cmd /c MyCommand" ve Windows nebo "/bin/sh -c MyCommand" v Linuxu. Pokud příkazový řádek odkazuje na cesty k souborům, měl by použít relativní cestu (vzhledem k pracovnímu adresáři úkolů) nebo proměnnou prostředí poskytnutou službou Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).
- container_settings
- TaskContainerSettings
Nastavení pro kontejner, pod kterým běží úloha Správce úloh. Pokud má fond, který bude tuto úlohu spouštět, nastavený parametr containerConfiguration, musí se nastavit také. Pokud fond, který bude tuto úlohu spouštět, nemá nastavený parametr containerConfiguration, nesmí se nastavit. Při zadání se všechny adresáře rekurzivně pod AZ_BATCH_NODE_ROOT_DIR (kořen Azure Batch adresářů na uzlu) namapují do kontejneru, všechny proměnné prostředí task se mapují do kontejneru a příkazový řádek Task se spustí v kontejneru. Soubory vytvořené v kontejneru mimo AZ_BATCH_NODE_ROOT_DIR se nemusí projevit na disku hostitele, což znamená, že rozhraní API pro soubory služby Batch nebudou mít k těmto souborům přístup.
- resource_files
- list[ResourceFile]
Soubory uvedené v tomto prvku jsou umístěny v pracovním adresáři úlohy. Pro seznam souborů prostředků platí maximální velikost. Při překročení maximální velikosti požadavek selže a kód chyby odpovědi bude RequestEntityTooLarge. Pokud k tomu dojde, musí se zmenšit velikost kolekce ResourceFiles. Toho můžete dosáhnout pomocí souborů .zip, balíčků aplikací nebo kontejnerů Dockeru.
- output_files
- list[OutputFile]
U úkolů s více instancemi se soubory nahrají jenom z výpočetního uzlu, na kterém se provádí primární úkol.
- environment_settings
- list[EnvironmentSetting]
- required_slots
- int
Počet slotů plánování, které úloha vyžaduje ke spuštění. Výchozí hodnota je 1. Úkol lze naplánovat tak, aby běžel na výpočetním uzlu pouze v případě, že má uzel k dispozici dostatek volných slotů plánování. U úloh s více instancemi není tato vlastnost podporována a nesmí být zadána.
- kill_job_on_completion
- bool
Určuje, jestli dokončení úlohy Správce úloh znamená dokončení celé úlohy. Pokud je tato hodnota true, služba Batch po dokončení úlohy označí úlohu jako dokončenou. Pokud jsou v tuto chvíli stále spuštěné nějaké úkoly (jiné než uvolnění úlohy), budou tyto úkoly ukončeny. Pokud je false, dokončení úlohy Správce úloh nemá vliv na stav úlohy. V takovém případě byste měli buď použít atribut onAllTasksComplete k ukončení úlohy, nebo nechat klienta nebo uživatele ukončit úlohu explicitně. Příkladem je, když Správce úloh vytvoří sadu úkolů, ale pak nemá při jejich provádění žádnou další roli. Výchozí hodnotou je hodnota true. Pokud používáte atributy onAllTasksComplete a onTaskFailure k řízení doby života úlohy a pomocí úlohy Správce úloh pouze k vytvoření úkolů pro úlohu (ne ke sledování průběhu), je důležité nastavit killJobOnCompletion na false.
- user_identity
- UserIdentity
Identita uživatele, pod kterou je spuštěna úloha Správce úloh. Pokud tento parametr vynecháte, spustí se úloha jako uživatel bez oprávnění správce, který je pro úlohu jedinečný.
- run_exclusive
- bool
Určuje, jestli úloha Správce úloh vyžaduje výhradní použití výpočetního uzlu, na kterém běží. Pokud je hodnota true, žádné jiné úkoly se nespustí na stejném uzlu po dobu, po kterou běží Správce úloh. Pokud je false, můžou se na výpočetním uzlu spustit současně se Správcem úloh i další úkoly. Úloha Správce úloh se započítává normálně do limitu souběžných úkolů výpočetního uzlu, takže to je relevantní jenom v případě, že výpočetní uzel umožňuje více souběžných úkolů. Výchozí hodnotou je hodnota true.
- application_package_references
- list[ApplicationPackageReference]
Balíčky aplikací se stahují a nasazují do sdíleného adresáře, nikoli do pracovního adresáře úloh. Proto pokud odkazovaný balíček aplikace je již na výpočetním uzlu a je aktuální, pak se znovu nestáhne; Použije se existující kopie na výpočetním uzlu. Pokud odkazovaný balíček aplikace nelze nainstalovat, například proto, že balíček byl odstraněn nebo protože stahování selhalo, úloha selže.
- authentication_token_settings
- AuthenticationTokenSettings
Nastavení ověřovacího tokenu, který může úloha použít k provádění operací služby Batch. Pokud je tato vlastnost nastavená, služba Batch poskytne úloze ověřovací token, který lze použít k ověření operací služby Batch bez nutnosti přístupového klíče účtu. Token se poskytuje prostřednictvím proměnné prostředí AZ_BATCH_AUTHENTICATION_TOKEN. Operace, které může úloha provádět pomocí tokenu, závisí na nastavení. Úkol může například požádat o oprávnění úlohy, aby mohl do úlohy přidat další úkoly, nebo zkontrolovat stav úlohy nebo jiných úkolů v rámci úlohy.
- allow_low_priority_node
- bool
Určuje, jestli může úloha správce úloh běžet na výpočetním uzlu s spotovou nebo nízkou prioritou. Výchozí hodnotou je hodnota true.
Metody
as_dict |
Vrácení diktování, které může být JSONify pomocí json.dump. Rozšířené použití může jako parametr volitelně použít zpětné volání: Klíč je název atributu, který se používá v Pythonu. Attr_desc je dikt metadat. Aktuálně obsahuje 'type' s typem msrest a 'key' s klíčem kódovaným RestAPI. Value je aktuální hodnota v tomto objektu. Vrácený řetězec se použije k serializaci klíče. Pokud je návratovým typem seznam, považuje se to za hierarchický dikt výsledku. Podívejte se na tři příklady v tomto souboru:
Pokud chcete serializaci XML, můžete předat kwargs is_xml=True. |
deserialize |
Parsujte str pomocí syntaxe RestAPI a vraťte model. |
enable_additional_properties_sending | |
from_dict |
Parsování diktování pomocí daného extraktoru klíčů vrátí model. Ve výchozím nastavení zvažte extraktory klíčů (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor a last_rest_key_case_insensitive_extractor). |
is_xml_model | |
serialize |
Vrátí kód JSON, který se z tohoto modelu odešle do Azure. Toto je alias pro as_dict(full_restapi_key_transformer, keep_readonly=False). Pokud chcete serializaci XML, můžete předat kwargs is_xml=True. |
validate |
Rekurzivně ověřte tento model a vraťte seznam ValidationError. |
as_dict
Vrácení diktování, které může být JSONify pomocí json.dump.
Rozšířené použití může jako parametr volitelně použít zpětné volání:
Klíč je název atributu, který se používá v Pythonu. Attr_desc je dikt metadat. Aktuálně obsahuje 'type' s typem msrest a 'key' s klíčem kódovaným RestAPI. Value je aktuální hodnota v tomto objektu.
Vrácený řetězec se použije k serializaci klíče. Pokud je návratovým typem seznam, považuje se to za hierarchický dikt výsledku.
Podívejte se na tři příklady v tomto souboru:
attribute_transformer
full_restapi_key_transformer
last_restapi_key_transformer
Pokud chcete serializaci XML, můžete předat kwargs is_xml=True.
as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)
Parametry
- key_transformer
- <xref:function>
Funkce klíčového transformátoru.
- keep_readonly
Návraty
Objekt kompatibilní se dict JSON
Návratový typ
deserialize
Parsujte str pomocí syntaxe RestAPI a vraťte model.
deserialize(data, content_type=None)
Parametry
- content_type
- str
Ve výchozím nastavení JSON nastavte application/xml, pokud XML.
Návraty
Instance tohoto modelu
Výjimky
enable_additional_properties_sending
enable_additional_properties_sending()
from_dict
Parsování diktování pomocí daného extraktoru klíčů vrátí model.
Ve výchozím nastavení zvažte extraktory klíčů (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor a last_rest_key_case_insensitive_extractor).
from_dict(data, key_extractors=None, content_type=None)
Parametry
- content_type
- str
Ve výchozím nastavení JSON nastavte application/xml, pokud XML.
- key_extractors
Návraty
Instance tohoto modelu
Výjimky
is_xml_model
is_xml_model()
serialize
Vrátí kód JSON, který se z tohoto modelu odešle do Azure.
Toto je alias pro as_dict(full_restapi_key_transformer, keep_readonly=False).
Pokud chcete serializaci XML, můžete předat kwargs is_xml=True.
serialize(keep_readonly=False, **kwargs)
Parametry
Návraty
Objekt kompatibilní se dict JSON
Návratový typ
validate
Rekurzivně ověřte tento model a vraťte seznam ValidationError.
validate()
Návraty
Seznam chyb ověření
Návratový typ
Azure SDK for Python