Condividi tramite


StartTask Classe

Attività eseguita quando un nodo aggiunge un pool nel servizio Azure Batch o quando il nodo di calcolo viene riavviato o ricreato.

Batch ritenta attività quando viene attivata un'operazione di ripristino in un nodo. Alcuni esempi di operazioni di ripristino includono (ma non sono limitati a) quando un nodo non integro viene riavviato o un nodo di calcolo scomparso a causa di un errore host. I tentativi dovuti alle operazioni di ripristino sono indipendenti da e non vengono conteggiati rispetto al maxTaskRetryCount. Anche se maxTaskRetryCount è 0, potrebbe verificarsi un tentativo interno a causa di un'operazione di ripristino. A causa di questo, tutte le attività devono essere idempotenti. Ciò significa che le attività devono tollerare l'interruzione e il riavvio senza causare alcun danneggiamento o dati duplicati. La procedura consigliata per le attività a esecuzione prolungata consiste nell'usare una forma di checkpoint. In alcuni casi, startTask può essere eseguito nuovamente anche se il nodo di calcolo non è stato riavviato. È consigliabile prestare particolare attenzione per evitare StartTasks che creano processi di interruzione o installano/avviano i servizi dalla directory di lavoro StartTask, in quanto questo impedisce a Batch di essere in grado di eseguire nuovamente StartTask.

Tutti i parametri obbligatori devono essere popolati per inviare ad Azure.

Ereditarietà
StartTask

Costruttore

StartTask(*, command_line: str, container_settings=None, resource_files=None, environment_settings=None, user_identity=None, max_task_retry_count: int = None, wait_for_success: bool = None, **kwargs)

Parametri

command_line
str
Necessario

Obbligatorio. La riga di comando non viene eseguita in una shell e pertanto non può sfruttare le funzionalità della shell, ad esempio l'espansione delle variabili di ambiente. Se si desidera sfruttare tali funzionalità, è necessario richiamare la shell nella riga di comando, ad esempio usando "cmd /c MyCommand" in Windows o "/bin/sh -c MyCommand" in Linux. Se la riga di comando fa riferimento ai percorsi di file, deve usare un percorso relativo (rispetto alla directory di lavoro attività) o usare la variabile di ambiente fornita da Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

container_settings
TaskContainerSettings
Necessario

Impostazioni per il contenitore in cui viene eseguito StartTask. Quando viene specificato, tutte le directory vengono mappate in modo ricorsivo al di sotto del AZ_BATCH_NODE_ROOT_DIR (la radice delle directory di Azure Batch nel nodo) vengono mappate nel contenitore, tutte le variabili di ambiente attività vengono mappate nel contenitore e la riga di comando attività viene eseguita nel contenitore. I file generati nel contenitore all'esterno di AZ_BATCH_NODE_ROOT_DIR potrebbero non essere riflessi nel disco host, ovvero le API file batch non potranno accedere a tali file.

resource_files
list[ResourceFile]
Necessario

I file elencati in questo elemento si trovano nella directory di lavoro dell'attività.

environment_settings
list[EnvironmentSetting]
Necessario
user_identity
UserIdentity
Necessario

Identità utente in cui viene eseguito StartTask. Se omesso, l'attività viene eseguita come utente non amministrativo univoco per l'attività.

max_task_retry_count
int
Necessario

Numero massimo di tentativi di ripetizione dell'attività. Il servizio Batch esegue il tentativo di un'attività se il codice di uscita è diverso da zero. Si noti che questo valore controlla specificamente il numero di tentativi. Il servizio Batch tenterà l'attività una sola volta e potrebbe quindi riprovare fino a questo limite. Ad esempio, se il numero massimo di tentativi è 3, Batch prova l'attività fino a 4 volte (un tentativo iniziale e 3 tentativi). Se il numero massimo di tentativi è 0, il servizio Batch non riprova l'attività. Se il numero massimo di tentativi è -1, il servizio Batch esegue il tentativo dell'attività senza limiti, ma non è consigliabile per un'attività di avvio o per qualsiasi attività. Il valore predefinito è 0, ovvero nessun tentativo.

wait_for_success
bool
Necessario

Se il servizio Batch deve attendere che StartTask venga completato correttamente, ovvero per uscire con il codice di uscita 0) prima di pianificare qualsiasi attività nel nodo di calcolo. Se true e StartTask ha esito negativo in un nodo, il servizio Batch esegue il tentativo startTask fino al numero massimo di tentativi (maxTaskRetryCount). Se l'attività non è ancora stata completata dopo tutti i tentativi, il servizio Batch contrassegna il nodo non utilizzabile e non pianifica attività. Questa condizione può essere rilevata tramite lo stato del nodo di calcolo e i dettagli sulle informazioni sugli errori. Se false, il servizio Batch non attenderà il completamento di StartTask. In questo caso, altre attività possono iniziare a eseguire nel nodo di calcolo mentre StartTask è ancora in esecuzione; e anche se StartTask ha esito negativo, le nuove attività continueranno a essere pianificate nel nodo di calcolo. Il valore predefinito è true.

Metodi

as_dict

Restituire un valore dict che può essere JSONify usando json.dump.

L'utilizzo avanzato potrebbe facoltativamente usare un callback come parametro:

La chiave è il nome dell'attributo usato in Python. Attr_desc è un dict di metadati. Attualmente contiene 'type' con il tipo msrest e 'key' con la chiave con codifica RestAPI. Il valore è il valore corrente in questo oggetto.

La stringa restituita verrà usata per serializzare la chiave. Se il tipo restituito è un elenco, viene considerato un risultato gerarchico.

Vedere i tre esempi in questo file:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Se si vuole la serializzazione XML, è possibile passare i kwargs is_xml=True.

deserialize

Analizzare uno str usando la sintassi RestAPI e restituire un modello.

enable_additional_properties_sending
from_dict

Analizzare un dict usando un estrattore chiave specificato restituisce un modello.

Per impostazione predefinita, considerare gli estrattori di chiavi (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor e last_rest_key_case_insensitive_extractor)

is_xml_model
serialize

Restituire il codice JSON inviato ad Azure da questo modello.

Si tratta di un alias per as_dict(full_restapi_key_transformer, keep_readonly=False).This is an alias to as_dict(full_restapi_key_transformer, keep_readonly=False).This is an alias to as_dict(full_restapi_key_transformer, keep_readonly=False).

Se si vuole la serializzazione XML, è possibile passare i kwargs is_xml=True.

validate

Convalidare questo modello in modo ricorsivo e restituire un elenco di ValidationError.

as_dict

Restituire un valore dict che può essere JSONify usando json.dump.

L'utilizzo avanzato potrebbe facoltativamente usare un callback come parametro:

La chiave è il nome dell'attributo usato in Python. Attr_desc è un dict di metadati. Attualmente contiene 'type' con il tipo msrest e 'key' con la chiave con codifica RestAPI. Il valore è il valore corrente in questo oggetto.

La stringa restituita verrà usata per serializzare la chiave. Se il tipo restituito è un elenco, viene considerato un risultato gerarchico.

Vedere i tre esempi in questo file:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Se si vuole la serializzazione XML, è possibile passare i kwargs is_xml=True.

as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)

Parametri

key_transformer
<xref:function>

Funzione di trasformatore chiave.

keep_readonly
valore predefinito: True

Restituisce

Oggetto compatibile con JSON dict

Tipo restituito

deserialize

Analizzare uno str usando la sintassi RestAPI e restituire un modello.

deserialize(data, content_type=None)

Parametri

data
str
Necessario

Str usando la struttura RestAPI. JSON per impostazione predefinita.

content_type
str
valore predefinito: None

JSON per impostazione predefinita, impostare application/xml se XML.

Restituisce

Istanza di questo modello

Eccezioni

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

Analizzare un dict usando un estrattore chiave specificato restituisce un modello.

Per impostazione predefinita, considerare gli estrattori di chiavi (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor e last_rest_key_case_insensitive_extractor)

from_dict(data, key_extractors=None, content_type=None)

Parametri

data
dict
Necessario

Dict using RestAPI structure

content_type
str
valore predefinito: None

JSON per impostazione predefinita, impostare application/xml se XML.

key_extractors
valore predefinito: None

Restituisce

Istanza di questo modello

Eccezioni

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

Restituire il codice JSON inviato ad Azure da questo modello.

Si tratta di un alias per as_dict(full_restapi_key_transformer, keep_readonly=False).This is an alias to as_dict(full_restapi_key_transformer, keep_readonly=False).This is an alias to as_dict(full_restapi_key_transformer, keep_readonly=False).

Se si vuole la serializzazione XML, è possibile passare i kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

Parametri

keep_readonly
bool
valore predefinito: False

Se si vuole serializzare gli attributi readonly

Restituisce

Oggetto compatibile con JSON dict

Tipo restituito

validate

Convalidare questo modello in modo ricorsivo e restituire un elenco di ValidationError.

validate()

Restituisce

Elenco di errori di convalida

Tipo restituito