?>Array ( [lang] => es [id] => 52 ) Monitoreo de un Trabajo Asíncrono de Puntuación de Riesgo Crediticio - WeAreCAS
session actionstatus

Monitoreo de un Trabajo Asíncrono de Puntuación de Riesgo Crediticio

Scénario de test & Cas d'usage

Contexto empresarial

Un banco necesita ejecutar un modelo de machine learning para puntuar el riesgo de crédito de miles de clientes. El proceso es largo y se ejecuta de forma asíncrona para no bloquear la sesión del analista. El analista necesita poder verificar el estado del trabajo (en ejecución, completado) sin interrumpir su flujo de trabajo.
Preparación de datos

No se requiere preparación de datos específica, ya que simularemos una acción de larga duración con 'builtins.sleep' para centrarnos en el monitoreo del estado.

¡Copiado!
1/* No se necesita código de preparación de datos para este escenario. */

Étapes de réalisation

1
Iniciar una acción de larga duración (simulada) de forma asíncrona para representar el trabajo de puntuación.
¡Copiado!
1PROC CAS;
2 SESSION casauto;
3 /* Iniciar una acción de 'sleep' de 15 segundos de forma asíncrona */
4 async 'trabajo_puntuacion', BUILTINS.sleep / seconds=15;
5QUIT;
2
Obtener el UUID de la sesión actual y verificar inmediatamente el estado de las acciones. El trabajo debería estar 'En ejecución'.
¡Copiado!
1PROC CAS;
2 SESSION casauto;
3 /* Obtener el UUID de la sesión actual */
4 SESSION.sessionId RESULT=r_sess;
5 uuid_actual = r_sess.SESSION;
6 PRINT 'Verificando estado para UUID:' uuid_actual;
7 
8 /* Verificar el estado de la acción */
9 SESSION.actionStatus / uuid=uuid_actual;
10QUIT;
3
Esperar a que el trabajo asíncrono finalice y volver a verificar el estado. Ahora debería estar 'Completada'.
¡Copiado!
1PROC CAS;
2 SESSION casauto;
3 /* Esperar a que el trabajo termine */
4 waitfor 'trabajo_puntuacion';
5 
6 /* Obtener el UUID y verificar de nuevo */
7 SESSION.sessionId RESULT=r_sess;
8 uuid_actual = r_sess.SESSION;
9 PRINT 'Verificando estado después de la finalización:';
10 SESSION.actionStatus / uuid=uuid_actual;
11QUIT;

Resultado esperado


La primera llamada a `actionstatus` mostrará la acción `builtins.sleep` con el estado 'En ejecución'. Después de que `waitfor` se complete, la segunda llamada mostrará la misma acción con el estado 'Completada'. Esto confirma que el ciclo de vida de una acción asíncrona puede ser monitoreado eficazmente.