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.
Tabela mestre
Section titled “Tabela mestre”| 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.
Todo minuto
Section titled “Todo minuto”🕐 Hora certa
Section titled “🕐 Hora certa”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).
🛡️ Vigia (watchdog)
Section titled “🛡️ Vigia (watchdog)”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.
A cada 10–15 minutos
Section titled “A cada 10–15 minutos”🆕 Provisionar rádios (10 min)
Section titled “🆕 Provisionar rádios (10 min)”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.
🔘 Botão do painel (10 min)
Section titled “🔘 Botão do painel (10 min)”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.
🎚️ Regra de fade (15 min)
Section titled “🎚️ Regra de fade (15 min)”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.
De hora em hora
Section titled “De hora em hora”💾 Backup do painel (:05)
Section titled “💾 Backup do painel (:05)”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.
Uma vez por dia (madrugada)
Section titled “Uma vez por dia (madrugada)”🔎 Verificar vencidos (05:20)
Section titled “🔎 Verificar vencidos (05:20)”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.
Uma vez por semana
Section titled “Uma vez por semana”💽 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.
Como isso é agendado
Section titled “Como isso é agendado”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.