Monitorização de cron jobs

Em breve

O cron que parou não avisa ninguém.

Um site em baixo dá sinal: alguém abre e não vê nada. Uma tarefa agendada que deixa de correr não dá sinal nenhum — o silêncio dela é exactamente igual ao silêncio de quando corre bem.

Isto ainda não existe. Não faz parte do lançamento da De Olho e não tem data. A página está aqui porque a pergunta é legítima e a resposta honesta — o que vai ser, e o que dá para fazer entretanto — vale mais do que não haver página nenhuma.

A cópia de segurança nocturna, a sincronização do stock, a renovação do certificado, o email de resumo das encomendas. Todas correm sozinhas, todas falham em silêncio, e todas são descobertas semanas depois — normalmente no dia em que fazem falta.

A razão é estrutural: a monitorização normal verifica se algo responde. Uma tarefa agendada não responde a nada. Não há endereço para consultar nem porta para bater, e por isso a mesma ferramenta que vigia o site não a vê.

O padrão que resolve isto chama-se heartbeat e é o inverso da verificação normal: em vez de sermos nós a bater à porta, é a tarefa que nos avisa quando acaba. Se o aviso não chegar dentro da janela esperada, é porque a tarefa não correu.

// como vai funcionar

O que a De Olho vai fazer com isto.

Está tudo no futuro e sem data — isto fica para depois do lançamento. Nada nesta página dá para usar hoje.

  • Ainda não existe na De Olho

    É dos acrescentos mais baratos que temos em lista — reaproveita quase tudo o que o motor de verificação já vai fazer — mas não entra no lançamento e não tem data.

  • Como vai funcionar, quando funcionar

    Um endereço único por tarefa, que o cron chama no fim. Uma linha acrescentada ao comando, sem instalar nada. Se a chamada não chegar dentro da janela que definiste, avisamos pelo mesmo canal que o resto.

  • O que dá para fazer entretanto

    Se a tarefa escreve num sítio observável — um ficheiro servido pelo site, um endpoint que devolve a data da última execução — dá para vigiar esse sítio com uma verificação normal. É uma solução com fita-cola, mas apanha o caso mais comum.

// limites

E o que isto não vai fazer.

Dizê-lo agora poupa-te tempo se o que precisas for outra coisa.

  • Não está disponível. Se for isso que precisas hoje, há ferramentas dedicadas a heartbeat e algumas têm plano gratuito generoso.
  • Um heartbeat diz que a tarefa acabou, não que fez o que devia. Uma cópia de segurança que corre bem e grava um ficheiro vazio chama o endereço na mesma.
  • Não vamos executar tarefas nem tentar reiniciá-las. Avisamos que não correu; o que corre é do teu lado.

// perguntas

O que nos perguntam sobre isto.

Isto serve para o WP-Cron do WordPress?

Serve, e é dos casos onde mais falha — o WP-Cron depende de haver visitas ao site para disparar, portanto num site com pouco tráfego as tarefas simplesmente não correm. Enquanto não tivermos heartbeat, o remédio é passar para um cron a sério no alojamento.

Porque é que não entra no lançamento?

Porque o lançamento tem uma coisa por resolver antes: verificar sites sem ninguém carregar num botão. Acrescentar um segundo tipo de vigilância antes de o primeiro estar de pé é a forma habitual de não acabar nenhum.

Avisamos-te quando abrirmos.

Um email quando o produto estiver pronto, com acesso antecipado e o preço de lançamento. Entretanto, o "Está em baixo, ou és só tu?" já funciona e não pede conta.