Sdílet prostřednictvím


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
Vyžadováno

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
Vyžadováno

Nemusí být jedinečný a může obsahovat jakékoli znaky Unicode až do maximální délky 1024.

command_line
str
Vyžadováno

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
Vyžadováno

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]
Vyžadováno

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]
Vyžadováno

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]
Vyžadováno
constraints
TaskConstraints
Vyžadováno

Omezení, která platí pro úlohu Správce úloh.

required_slots
int
Vyžadováno

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
Vyžadováno

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
Vyžadováno

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
Vyžadováno

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]
Vyžadováno

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
Vyžadováno

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
Vyžadováno

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:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

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
výchozí hodnota: True

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

data
str
Vyžadováno

Str využívající strukturu RestAPI. Json ve výchozím nastavení.

content_type
str
výchozí hodnota: None

Ve výchozím nastavení JSON nastavte application/xml, pokud XML.

Návraty

Instance tohoto modelu

Výjimky

DeserializationError if something went wrong

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

data
dict
Vyžadováno

A dict using RestAPI structure

content_type
str
výchozí hodnota: None

Ve výchozím nastavení JSON nastavte application/xml, pokud XML.

key_extractors
výchozí hodnota: None

Návraty

Instance tohoto modelu

Výjimky

DeserializationError if something went wrong

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

keep_readonly
bool
výchozí hodnota: False

Pokud chcete serializovat atributy readonly

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