Filas: dez tarefas e vá dormir|INEMA.CLUB-PRO

Aula 1 · 12 min

Do chat à fila: por que guardar as tarefas

No chat, o agente faz uma coisa por vez e só enquanto a janela está aberta. Uma fila durável guarda cada pedido, executa um de cada vez, retoma depois de uma queda e separa o que deu certo do que falhou.

Começar a aula
Fileira de fichas de papel em sequência sobre uma mesa escura, uma delas destacada.

Nesta aula você vai

  1. 1O limite do chat: você precisa estar olhando
  2. 2As quatro garantias de uma fila durável
  3. 3Os estados de uma tarefa, do pedido ao resultado
  4. 4Onde o inemaccbot entra no degrau 3

Objetivo: explicar as quatro garantias de uma fila durável e por que elas deixam você sair de perto.

01Chat × fila

O mesmo pedido, em dois lugares diferentes.

Role a página: cada etapa abaixo acende a sua parte do diagrama.

  1. 1/5

    Chat

    No chat você digita, espera, copia e cola. Se fechar a janela ou o computador desligar, o trabalho em andamento some. Dez tarefas = dez esperas com você na frente.

  2. 2/5

    Fila durável

    O pedido é gravado antes de rodar. No inemaccbot, a fila é um banco SQLite no disco; na fila caseira, um arquivo por tarefa numa pasta. Desligou? A tarefa continua lá.

  3. 3/5

    Trabalhador

    Um trabalhador (worker) pega uma tarefa, entrega ao agente e espera. Se o processo cair no meio, na próxima subida ele recupera o que estava em voo antes de aceitar trabalho novo.

  4. 4/5

    Resultado

    Cada tarefa termina num estado claro: deu certo (com o arquivo ou texto) ou falhou (com o motivo). É isso que você confere de manhã.

  5. 5/5

    Por que isso deixa você sair de perto

    Guardar antes de rodar, uma por vez, retomar depois de uma queda e separar feito de falhou: com essas quatro garantias, desligar a tela não custa trabalho.

No inemaccbot o pedido chega pelo Telegram; na fila caseira da aula 3, é um arquivo .md numa pasta. A ideia é a mesma.

02As quatro garantias

O que você deve esperar de qualquer fila, caseira ou não.

1. Guardar antes de rodar

O pedido vira registro em disco no momento em que chega. Não depende de uma janela aberta nem da memória do programa.

No inemaccbot, cada pedido vira um job numa tabela do banco. Ele tem número (j13), fila, situação e quantas tentativas sobram.

Sinal no dia a diaVocê manda o pedido pelo celular, o computador reinicia, e o pedido continua na lista.

03Os estados de uma tarefa

Os nomes mudam de uma fila para outra; a ideia é a mesma.

Fila caseira (pastas)
fila/
  entrada/   # pedidos esperando a vez
  rodando/   # a tarefa que está com o agente agora
  feito/     # pedido + resposta
  falhou/    # pedido + ERRO e o motivo
inemaccbot (situação do job no banco)
queued    # na fila, esperando a vez
running   # um trabalhador pegou e está executando
done      # terminou com resultado
failed    # esgotou as tentativas, com o motivo
canceled  # você cancelou (/cancelar)
Exemplo do repositório
  • Fila caseira: ao rodar de novo, o que estiver em rodando/ volta para entrada/.
  • inemaccbot: o trabalhador renova um "aluguel" (lease) da tarefa enquanto trabalha. Se o aluguel vence porque o processo caiu, a tarefa volta para queued enquanto houver tentativas.

04O degrau 3 em vídeo

A fila durável do inemaccbot e o portão de aprovação, em um minuto e meio.

Dez tarefas e vá dormir · 1 min 33 sPágina do vídeo com roteiro →

05Teste o que aprendeu

A explicação aparece depois da sua resposta.

Pergunta 1 de 3

Qual é a diferença essencial entre pedir no chat e mandar para uma fila durável?competência

Para ir além

Próxima aula