?>Array ( [lang] => es [id] => 52 )
Scénario de test & Cas d'usage
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.
| 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.