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 將無法存取這些檔案。
- environment_settings
- list[EnvironmentSetting]
- 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 是這個 物件中的目前值。 傳回的字串將用來序列化索引鍵。 如果傳回類型是清單,則會將此視為階層式結果聽寫。 請參閱此檔案中的三個範例:
如果您想要 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
傳回
聽寫 JSON 相容物件
傳回類型
deserialize
使用 RestAPI 語法剖析 str 並傳回模型。
deserialize(data, content_type=None)
參數
傳回
此模型的實例
例外狀況
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)
參數
- key_extractors
傳回
此模型的實例
例外狀況
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)
參數
傳回
聽寫 JSON 相容物件