Scénario de test & Cas d'usage
Gestión del estado de la sesión CAS.
Descubrir todas las acciones de sessionNo 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.
| 1 | /* No se necesita código de preparación de datos para este escenario. */ |
| 1 | PROC 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; |
| 5 | QUIT; |
| 1 | PROC 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; |
| 10 | QUIT; |
| 1 | PROC 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; |
| 11 | QUIT; |
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.