StartTask 類別

當節點加入Azure Batch服務中的集區時,或當計算節點重新開機或重新映射時,就會執行的工作。

批次會在節點上觸發復原作業時重試工作。 復原作業的範例包括 (,但不限於重新開機狀況不良的節點時) ,或因主機失敗而計算節點消失。 由於復原作業的重試與 無關,而且不會計入 maxTaskRetryCount。 即使 maxTaskRetryCount 為 0,也可能發生因復原作業而造成內部重試。 因此,所有工作都應該是等冪的。 這表示工作必須容許中斷並重新啟動,而不會造成任何損毀或重複的資料。 長時間執行工作的最佳做法是使用某種形式的檢查點檢查。 在某些情況下,即使計算節點未重新開機,StartTask 仍可能會重新執行。 請特別小心避免從 StartTask 工作目錄建立中斷進程或安裝/啟動服務的 StartTask,因為這樣會阻止 Batch 重新執行 StartTask。

必須填入所有必要的參數,才能傳送至 Azure。

繼承
StartTask

建構函式

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)

參數

command_line
str
必要

必要。 命令列不會在殼層下執行,因此無法利用環境變數擴充等殼層功能。 如果您想要利用這類功能,您應該在命令列中叫用殼層,例如在 Windows 中使用 「cmd /c MyCommand」 或 Linux 中的 「/bin/sh -c MyCommand」。 如果命令列參考檔案路徑,它應該使用相對於工作工作目錄) 的相對路徑 (,或使用 Batch 提供的環境變數 (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables) 。

container_settings
TaskContainerSettings
必要

StartTask 執行所在容器的設定。 當指定此專案時,節點) 上Azure Batch目錄根目錄AZ_BATCH_NODE_ROOT_DIR (遞迴地對應到容器、所有 Task 環境變數都會對應到容器中,而且工作命令列會在容器中執行。 在AZ_BATCH_NODE_ROOT_DIR外部容器中產生的檔案可能不會反映到主機磁片,這表示 Batch 檔案 API 將無法存取這些檔案。

resource_files
list[ResourceFile]
必要

此元素底下的檔案位於工作的工作目錄中。

environment_settings
list[EnvironmentSetting]
必要
user_identity
UserIdentity
必要

StartTask 執行所在的使用者身分識別。 如果省略,工作會以 Task 唯一的非系統管理使用者身分執行。

max_task_retry_count
int
必要

工作可能會重試的最大次數。 如果 Batch 服務結束代碼為非零,則會重試工作。 請注意,這個值會特別控制重試次數。 Batch 服務會嘗試一次工作,然後可能會重試到此限制。 例如,如果重試計數上限為 3,Batch 會嘗試最多 4 次工作, (一次初始嘗試,3 次重試) 。 如果重試計數上限為 0,Batch 服務不會重試工作。 如果重試計數上限為 -1,Batch 服務會重試工作,但不建議用於啟動工作或任何工作。 預設值為 0 (不重試)。

wait_for_success
bool
必要

Batch 服務是否應該等候 StartTask 順利完成 (,在排程計算節點上的任何工作之前,先結束結束代碼 0) 。 如果 True 且 StartTask 在節點上失敗,Batch 服務會重試 StartTask,最多達到最大重試計數 (maxTaskRetryCount) 。 如果工作在所有重試之後仍然未順利完成,Batch 服務會將節點標示為無法使用,且不會排程工作。 您可以透過計算節點狀態和失敗資訊詳細資料來偵測此狀況。 如果為 false,Batch 服務將不會等待 StartTask 完成。 在此情況下,當 StartTask 仍在執行時,其他工作可以在計算節點上開始執行;即使 StartTask 失敗,新的工作仍會繼續排程在計算節點上。 預設值是 true。

方法

as_dict

使用 json.dump 傳回可以是 JSONify 的聽寫。

進階用法可以選擇性地使用回呼作為參數:

索引鍵是 Python 中使用的屬性名稱。 Attr_desc是中繼資料的聽寫。 目前包含具有 msrest 類型的 'type',以及具有 RestAPI 編碼金鑰的 'key'。 Value 是這個 物件中的目前值。

傳回的字串將用來序列化索引鍵。 如果傳回類型是清單,則會將此視為階層式結果聽寫。

請參閱此檔案中的三個範例:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

如果您想要 XML 序列化,您可以傳遞 kwargs is_xml=True。

deserialize

使用 RestAPI 語法剖析 str 並傳回模型。

enable_additional_properties_sending
from_dict

使用指定的索引鍵擷取器剖析聽寫會傳回模型。

根據預設,請考慮金鑰擷取器 (rest_key_case_insensitive_extractor、attribute_key_case_insensitive_extractor和last_rest_key_case_insensitive_extractor)

is_xml_model
serialize

傳回會從此模型傳送至 Azure 的 JSON。

這是as_dict (full_restapi_key_transformer的別名 ,keep_readonly=False)

如果您想要 XML 序列化,您可以傳遞 kwargs is_xml=True。

validate

以遞迴方式驗證此模型,並傳回 ValidationError 的清單。

as_dict

使用 json.dump 傳回可以是 JSONify 的聽寫。

進階用法可以選擇性地使用回呼作為參數:

索引鍵是 Python 中使用的屬性名稱。 Attr_desc是中繼資料的聽寫。 目前包含具有 msrest 類型的 'type',以及具有 RestAPI 編碼金鑰的 'key'。 Value 是這個 物件中的目前值。

傳回的字串將用來序列化索引鍵。 如果傳回類型是清單,則會將此視為階層式結果聽寫。

請參閱此檔案中的三個範例:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

如果您想要 XML 序列化,您可以傳遞 kwargs is_xml=True。

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

參數

key_transformer
<xref:function>

按鍵轉換程式函式。

keep_readonly
預設值: True

傳回

聽寫 JSON 相容物件

傳回類型

deserialize

使用 RestAPI 語法剖析 str 並傳回模型。

deserialize(data, content_type=None)

參數

data
str
必要

使用 RestAPI 結構的 str。 根據預設,JSON。

content_type
str
預設值: None

根據預設,如果 XML,請設定 application/xml。

傳回

此模型的實例

例外狀況

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

使用指定的索引鍵擷取器剖析聽寫會傳回模型。

根據預設,請考慮金鑰擷取器 (rest_key_case_insensitive_extractor、attribute_key_case_insensitive_extractor和last_rest_key_case_insensitive_extractor)

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

參數

data
dict
必要

使用 RestAPI 結構的聽寫

content_type
str
預設值: None

根據預設,如果 XML,請設定 application/xml。

key_extractors
預設值: None

傳回

此模型的實例

例外狀況

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

傳回會從此模型傳送至 Azure 的 JSON。

這是as_dict (full_restapi_key_transformer的別名 ,keep_readonly=False)

如果您想要 XML 序列化,您可以傳遞 kwargs is_xml=True。

serialize(keep_readonly=False, **kwargs)

參數

keep_readonly
bool
預設值: False

如果您想要序列化唯讀屬性

傳回

聽寫 JSON 相容物件

傳回類型

validate

以遞迴方式驗證此模型,並傳回 ValidationError 的清單。

validate()

傳回

驗證錯誤清單

傳回類型