TL;DR
- As execuções de visibilidade agendadas disparavam mesmo com a máquina offline, então um laptop fechado significava uma execução que falhava todas as consultas.
- O aplicativo agora faz uma verificação real de conectividade antes de uma execução agendada começar, porque o sistema operacional informa "online" no instante em que o laptop acorda, antes de a conexão funcionar.
- Se a conexão morrer no meio da execução, ela para e o agendamento tenta de novo quando a máquina volta a ficar online.
- As consultas que falharam ficam fora dos seus resultados, então só as respostas reais contam.
- Também nesta semana: uma execução de visibilidade concluída pode ser entregue direto ao chat do Moose para uma conversa mais longa sobre os resultados, e as personalizações do player de áudio agora são salvas.
Agendada para falhar
O Hi, Moose confere a sua visibilidade em IA seguindo um agendamento: pergunta aos assistentes de IA que os seus clientes usam sobre o seu mercado e registra se você aparece. Quem faz as perguntas é o aplicativo para desktop, da sua máquina.
Era aí que o bug morava. O agendamento sabia quando uma execução estava vencendo. Não sabia se o laptop conseguia alcançar a internet. Feche a tampa, pegue um trem, abra em algum lugar com um wi-fi que ainda não se decidiu sobre você, e uma execução vencida disparava mesmo assim, fazia cada uma das suas perguntas a uma conexão morta e falhava absolutamente todas as consultas. Todo aquele trabalho, nada para mostrar, e uma bagunça para o painel limpar.
Uma tarefa agendada que não levanta os olhos da própria lista é uma falha em que é fácil se reconhecer. E é uma falha que tem conserto.
Barrinhas de wi-fi não são internet
O conserto óbvio é "primeiro verifique se está online", e aqui está a parte que tornou a coisa interessante: o sistema operacional é um otimista. No instante em que um laptop acorda, a interface de wi-fi está de pé e o sistema informa conectado, enquanto o DNS e o roteamento ainda estão procurando os sapatos. Uma execução disparada nesse intervalo falha exatamente como antes, com um ícone de wi-fi bem verde assistindo.
Então o aplicativo parou de pedir a opinião do sistema e passou a verificar por conta própria. Antes de uma execução agendada começar, ele faz uma requisição real a dois endpoints de conectividade bem conhecidos, do mesmo tipo que o seu laptop usa para detectar as páginas de login de cafeteria, e fica com a primeira resposta que chegar. Nenhuma resposta dos dois, nada de execução por enquanto. O agendamento simplesmente espera, e a execução dispara quando a conexão é real.
Parar, e depois tentar de novo
Conexões também morrem no meio da execução. Agora a execução percebe: se um par de consultas seguidas volta de mãos vazias, ela verifica a conexão antes de gastar tempo com o resto. Uma única verificação pode levar minutos para desistir de uma conexão morta, e uma execução tem muitas delas, então perceber cedo faz diferença.
Se a máquina estiver mesmo offline, a execução para, deixa de lado a sua pilha parcial de falhas e reabre a janela de agendamento de hoje. Quando você volta a ficar online, ela dispara uma vez e faz o trabalho direito. E as consultas que falharam ficam fora dos seus resultados de qualquer jeito, então só as respostas reais contam.
Uma execução com quem conversar
Também nesta semana: quando uma execução de visibilidade termina e você quer se aprofundar, pode entregá-la ao chat do Moose para continuar a análise. Os resultados vão junto, e como foi o próprio aplicativo que escreveu aquela primeira mensagem, o chat vai direto ao trabalho. De um gráfico a uma conversa sobre o gráfico, em um passo.
E uma pequena que vai melhorar em silêncio a terça-feira de alguém: se você personalizar o player de áudio incorporado do recurso Listen, as suas configurações agora são salvas. Configure uma vez, fique com ele.
FAQ
Qual era o bug das execuções agendadas de visibilidade?
O agendamento disparava independentemente de a máquina conseguir alcançar a internet. Em um laptop fechado ou recém-acordado, a execução começava, falhava todas as consultas e não tinha nada de real para mostrar.
Como o aplicativo verifica agora que está online?
Ele faz uma requisição real a dois endpoints de conectividade bem conhecidos antes de uma execução agendada começar. O sinal de conexão do próprio sistema operacional não basta, porque ele informa conectado no instante em que o laptop acorda, antes de a conexão funcionar.
O que acontece se a conexão cair no meio de uma execução?
A execução para em vez de arrastar o resto das verificações contra uma conexão morta. O agendamento reabre, e a execução dispara uma vez quando a máquina volta a ficar online.
As consultas que falharam afetam meus resultados de visibilidade?
Não. Uma consulta que nunca recebeu resposta é registrada como indisponível e fica fora dos seus resultados, então só as respostas reais contam.
O que fica debaixo da mesa durante tudo isso.