Clase 1 · 12 min
Del chat a la cola: por qué guardar las tareas
En el chat, el agente hace una cosa a la vez y solo mientras la ventana está abierta. Una cola durable guarda cada pedido, ejecuta uno a la vez, retoma después de una caída y separa lo que salió bien de lo que falló.
Empezar la lección
En esta lección vas a
- 1El límite del chat: tienes que estar pendiente
- 2Las cuatro garantías de una cola durable
- 3Los estados de una tarea, desde el pedido hasta el resultado
- 4Dónde entra inemaccbot en el nivel 3
Objetivo: explicar las cuatro garantías de una cola durable y por qué te permiten alejarte.
01Chat × cola
El mismo pedido, en dos lugares distintos.
Desplázate por la página: cada etapa de abajo ilumina su parte del diagrama.
- 1/5
Chat
En el chat escribes, esperas, copias y pegas. Si cierras la ventana o se apaga la computadora, el trabajo en curso desaparece. Diez tareas = diez esperas contigo al frente.
- 2/5
Cola durable
El pedido se guarda antes de ejecutarse. En inemaccbot, la cola es una base de datos SQLite en el disco; en la cola casera, un archivo por tarea en una carpeta. ¿Se apagó? La tarea sigue ahí.
- 3/5
Trabajador
Un trabajador (worker) toma una tarea, se la entrega al agente y espera. Si el proceso se cae a mitad del trabajo, al iniciar de nuevo recupera lo que estaba en curso antes de aceptar trabajo nuevo.
- 4/5
Resultado
Cada tarea termina en un estado claro: salió bien (con el archivo o el texto) o falló (con el motivo). Eso es lo que revisas por la mañana.
- 5/5
Por qué esto te permite alejarte
Guardar antes de ejecutar, una tarea a la vez, retomar después de una caída y separar lo hecho de lo que falló: con estas cuatro garantías, apagar la pantalla no te hace perder trabajo.
En inemaccbot, el pedido llega por Telegram; en la cola casera de la clase 3, es un archivo .md en una carpeta. La idea es la misma.
02Las cuatro garantías
Lo que debes esperar de cualquier cola, casera o no.
1. Guardar antes de ejecutar
El pedido se convierte en un registro en el disco en cuanto llega. No depende de una ventana abierta ni de la memoria del programa.
En inemaccbot, cada pedido se convierte en un job en una tabla de la base de datos. Tiene un número (j13), una cola, un estado y un número de intentos restantes.
Envías el pedido desde el celular, la computadora se reinicia y el pedido sigue en la lista.
2. Una a la vez (por cola)
Cada trabajador toma una tarea, la termina y solo entonces toma la siguiente. Así se evita que dos trabajos compitan por la misma máquina.
En inemaccbot hay cinco colas con límites distintos: la de renderizado ejecuta una a la vez a propósito, porque usa la tarjeta gráfica; la de red acepta diez.
3. Retomar después de una caída
Si el proceso se cae a mitad del trabajo, la tarea no se pierde ni queda a medias para siempre. Al iniciar de nuevo, lo que estaba en curso vuelve a la cola.
inemaccbot hace esto antes de aceptar trabajo nuevo y lo registra en el log: boot: recuperação de leases — requeued=N failed=M. Requeued es lo que volvió a la cola; failed es lo que ya había agotado todos sus intentos.
4. Separar lo hecho de lo que falló
La tarea que da error no desaparece ni bloquea la cola: pasa al lado de los fallos, con el motivo registrado, y la cola sigue.
Los prompts de inemaccbot exigen que el agente termine con RESULT: <caminho> o ERRO: <motivo curto>. Ese contrato permite saber, sin abrir nada, cómo terminó cada tarea.
03Los estados de una tarea
Los nombres cambian de una cola a otra; la idea es la misma.
fila/ entrada/ # solicitudes esperando su turno rodando/ # la tarea que el agente está ejecutando ahora feito/ # solicitud + respuesta falhou/ # solicitud + ERRO y el motivo
queued # en la cola, esperando su turno running # un trabajador la tomó y la está ejecutando done # terminó con resultado failed # agotó los intentos, con el motivo canceled # tú la cancelaste (/cancelar)
- Cola casera: al ejecutarla de nuevo, lo que esté en
rodando/vuelve aentrada/. - inemaccbot: el trabajador renueva el "alquiler" (lease) de la tarea mientras trabaja. Si el alquiler vence porque el proceso se cayó, la tarea vuelve a
queuedmientras queden intentos.
En la cola casera: respuesta vacía o código de error del agente. En inemaccbot: el agente no terminó con RESULT:, se agotó el plazo (timeout) o se acabaron los intentos (max_tentativas, de 2 a 4 en las skills del catálogo).
04El nivel 3 en video
La cola durable de inemaccbot y la compuerta de aprobación, en un minuto y medio.
05Pon a prueba lo que aprendiste
La explicación aparece después de tu respuesta.
Pregunta 1 de 3
¿Cuál es la diferencia esencial entre pedir algo en el chat y enviarlo a una cola durable?competencia
Pregunta 2 de 3
El registro del bot mostró requeued=2 failed=1 al iniciar. ¿Qué pasó?
Pregunta 3 de 3
Una tarea falló a las 3 h de la mañana. ¿Qué hace una buena cola?
Elige una alternativa. La explicación aparece después de tu intento.