Skip to content

As automações (os crons)

O servidor roda um conjunto de tarefas agendadas (na linguagem técnica, cron jobs). São os “robôs” que mantêm tudo funcionando sem ninguém apertar botão. Esta é a lista completa, com horário e o que faz — do que roda a cada minuto ao que roda toda semana.

Robô Quando roda Pra quê
Hora certa Todo minuto Atualiza o áudio da hora de cada rádio
Vigia (watchdog) Todo minuto Religa rádio que caiu + avisa no WhatsApp
Provisionar rádios A cada 10 min Detecta rádio nova → cria painel + site
Botão do painel A cada 10 min Mantém o botão “Painel” dentro do AzuraCast
Regra de fade A cada 15 min Garante “fade só na música” (jingle não cruza)
Backup do painel De hora em hora (:05) Copia o banco do painel pro Drive
Baixar conteúdo (BRLogic) 04:00 · 16:00 · 21:15 Baixa conteúdo novo do fornecedor
Distribuir programas 04:30 · 16:30 · 21:30 Espalha programas + programetes pras rádios
Distribuir campanhas 05:00 · 16:45 · 21:45 Espalha as campanhas do mês
Verificar vencidos 05:20 (diário) Avisa no WhatsApp se algo parou de atualizar
Backup do banco (AzuraCast) 04:00 (diário) Copia o banco da rádio pro Drive
Backup da biblioteca 04:30 (domingo) Copia as músicas pro Drive

A seguir, cada um em detalhe.

Reescreve, a cada 60 segundos, o arquivo de “hora agora” de cada rádio que tem hora certa ligada, já com o áudio do minuto atual no fuso daquela rádio. Assim, quando a programação chama a hora certa, o arquivo já está com a hora exata. Escrita atômica (se falhar, mantém o áudio anterior — nunca toca hora quebrada).

Confere se cada rádio está realmente no ar. Se uma ficou offline, ele espera confirmar (~2 min) e religa a rádio sozinho, respeitando um intervalo entre tentativas. Se um locutor estiver ao vivo, ele não interrompe. Manda aviso no grupo de WhatsApp quando reinicia e quando a rádio volta; se depois de várias tentativas ela não voltar, manda um alerta pra PSYCO verificar. Detalhes em Watchdog.

Olha a lista de rádios no motor (AzuraCast) e, se achou uma nova que ainda não está no painel, cria sozinho: o cadastro no painel (com senha inicial) e o subdomínio do site na Vercel (com certificado). É o robô que faz “criar no motor → em 10 min o site está no ar”. É idempotente: se não há nada novo, não faz nada.

Mantém, dentro da tela de administração do AzuraCast, o botão “Painel do cliente” apontando pro lugar certo de cada rádio (um mapa de links assinados). Recalcula e só atualiza se algo mudou.

Garante em todas as rádios a regra “fade só na música”: músicas cruzam suavemente (crossfade), mas vinheta, comercial e hora certa não — eles entram secos, sem cortar a locução. Só age se a regra estiver faltando ou diferente (ex.: numa rádio nova); em operação normal, não mexe em nada.

A cada hora, faz uma cópia consistente do banco do painel (painel.db — que guarda os sites, logins, locutores, chat, hora certa de todas as rádios) junto dos arquivos enviados, e manda pro Google Drive. Mantém os backups de hora dos últimos 7 dias e um por dia por 90 dias.

Três vezes por dia (o ciclo de conteúdo)

Section titled “Três vezes por dia (o ciclo de conteúdo)”

Esses três trabalham em sequência, na manhã, na tarde e à noite:

📥 Baixar conteúdo — BRLogic (04:00 · 16:00 · 21:15)

Section titled “📥 Baixar conteúdo — BRLogic (04:00 · 16:00 · 21:15)”

Conecta no fornecedor e baixa o que há de novo: programas, programetes, campanhas, vinhetas. Guarda no acervo central e reindexação o AzuraCast. É o “abastecimento”.

📦 Distribuir programas + programetes (04:30 · 16:30 · 21:30)

Section titled “📦 Distribuir programas + programetes (04:30 · 16:30 · 21:30)”

Pega o que foi baixado e espalha os programas e programetes pra dentro de cada rádio, com nome legível. Espelha o acervo (o que saiu da lista, sai da rádio). Roda logo depois do download.

📢 Distribuir campanhas (05:00 · 16:45 · 21:45)

Section titled “📢 Distribuir campanhas (05:00 · 16:45 · 21:45)”

Espalha as campanhas do mês corrente (as sazonais entram/saem conforme a data; as gerais ficam sempre). Roda 3× ao dia pra acompanhar o download — assim, campanha nova não fica esperando o dia seguinte.

Checa o acervo e detecta conteúdo que o fornecedor parou de atualizar (usando uma janela inteligente que ignora o que é semanal ou perene). Se achar algo realmente parado, manda um resumo no WhatsApp pra PSYCO verificar. Sem vencidos, não avisa nada.

💾 Backup do banco — AzuraCast (04:00)

Section titled “💾 Backup do banco — AzuraCast (04:00)”

Faz backup do banco da rádio (configurações das estações, sem as músicas) e sobe pro Google Drive, mantendo 30 dias de histórico.

💽 Backup da biblioteca (domingo, 04:30)

Section titled “💽 Backup da biblioteca (domingo, 04:30)”

Copia a biblioteca de músicas inteira pra o Google Drive (cópia que só adiciona, nunca apaga). É o maior dos backups — por isso roda semanalmente e de madrugada.

Tudo isso vive no cron do servidor (a lista de tarefas agendadas do Linux). Cada linha diz “rode tal programa em tal horário”. Adicionar, remover ou mudar horário é tarefa da PSYCO — mexer aqui é o que liga e desliga esses robôs.

Quer ver o que acontece nos bastidores quando uma rádio é criada? Vá para O que acontece ao criar uma rádio.