簡體   English   中英

如何每 n 秒檢查一次列表中的作業狀態,直到所有作業完成?

[英]How to check status for jobs in list each n seconds till all jobs finished?

在開始另一個步驟之前,我在檢查所有轉錄作業的狀態時遇到問題。 我需要知道myList中的所有作業何時為COMPLTETEDFAILED ,如果它是錯誤的 5 秒后重試,但目前它一直在運行,有我的 python 腳本:

while True:
    final_list = []
    for job in myList:
        status = transcribe.get_transcription_job(TranscriptionJobName=job)
        final_list.append(status.get('TranscriptionJob').get('TranscriptionJobStatus'))

    if all(status in final_list for status in ['COMPLETED', 'FAILED']):
        break
    time.sleep(5)

編輯 1可能的響應狀態可以是QUEUEDIN_PROGRESSFAILEDCOMPLETED

編輯 2 Omar 是對的,我沒有正確提取每個作業響應的狀態,但腳本仍然永遠運行。

get_transcription_job方法的響應語法是:

{
    'TranscriptionJob': {
        'TranscriptionJobName': 'string',
        'TranscriptionJobStatus': 'QUEUED'|'IN_PROGRESS'|'FAILED'|'COMPLETED',
        ...
    }
}

因此,不要添加包含其他字段的“狀態”object,而是需要 append status.get('TranscriptionJob').get('TranscriptionJobStatus')

改變:

final_list.append(status)

經過:

final_list.append(status.get('TranscriptionJob').get('TranscriptionJobStatus'))

參考:

Boto3 get_transcription_job

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM