es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , ,

Answer

  1. Avatar for 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 en final_list son COMPLETED o FAILED utilizando la función set.

    Aquí tienes el código modificado:

    while True:
        final_list = []
        for job in myList:
            status = transcribe.get_transcription_job(TranscriptionJobName=job)
            final_list.append(status['TranscriptionJob']['TranscriptionJobStatus'])
    
        if set(final_list) == {'COMPLETED', 'FAILED'}:
            break
        time.sleep(5)
    

    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!

Comments are closed.