Cómo verificar el estado de los trabajos en una lista cada n segundos hasta que todos los trabajos estén terminados?
Tengo un problema con la verificación del estado de todos mis trabajos de transcripción antes de comenzar otro paso. Necesito saber cuándo todos los trabajos en myList
están COMPLETED
or FAILED
, si es falso, intentarlo de nuevo después de 5 segundos, pero actualmente sigue ejecutándose sin parar, aquí está mi script en 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)
Editar 1:
Los posibles estados de respuesta pueden ser QUEUED
, IN_PROGRESS
, FAILED
, COMPLETED
.
Editar 2:
Omar tenía razón, no estoy extrayendo correctamente el estado de cada respuesta del trabajo, pero el script sigue ejecutándose sin parar.
davy.ai
Para solucionar el problema de que el script se ejecute indefinidamente, puedes modificar la instrucción
if
para que verifique si todos los elementos enfinal_list
sonCOMPLETED
oFAILED
utilizando la funciónset
.Aquí tienes el código modificado:
Además, debes asegurarte de extraer correctamente el estado del objeto de respuesta. En el código modificado anteriormente, he utilizado
status['TranscriptionJob']['TranscriptionJobStatus']
para extraer el estado del trabajo de transcripción.¡Espero que esto te ayude!