Imagem de capa do projeto: NEXUS Cronjobs EM ANDAMENTO

Resumo técnico

O NEXUS Cronjobs é o hub único de agendamento do servidor: descobre jobs declarados em cronjob.json de cada plugin ativo, despacha ticks via soft-cron (worker.php/cron.php/run_cron) e agenda comandos CLI custom por allowlist. Integra execução via nx_secure_exec_status e cria tarefas a partir dos runs.

Escopo executado

  • Registro do plugin (registerTab('nexus-cronjobs','Cronjobs','clock',tab.php,'Admin & Ops') + registerDoc) e cronjob.json como manifesto declarativo de jobs (mesmo espírito do fastr.json).
  • API com 7 actions: cronjobs_list (catálogo + custom + plugin_catalog + stats), cronjobs_save (schedule editável via functions.save), cronjobs_run (execução on-demand), cronjobs_custom_{save,delete} (CRUD de jobs CLI) e cronjobs_runs/cronjobs_tick (histórico e dispatcher de soft-cron).
  • Persistência via config do DB (sem tabelas próprias): plugin.cronjobs.jobs (custom, upsert), plugin.cronjobs.runs (histórico, max 80) e plugin.cronjobs.meta — leitura em memória, dedupe por kind+query_key.
  • Segurança e allowlist: cronjobs_resolve_command() valida path contra (?^plugins/[a-z0-9_-]+/.+\.php$ | cron/*.php | worker.php$) via realpath, rejeita ../null/space e confirma prefixo dentro do root.
  • Workers/cron (soft-cron): cronjobs_tick() itera jobs tick:true chamando functions.check, depois cronjobs_run_custom_due() dispara custom jobs cujo next_run <= now e recalcula (match cronjobs_calc_next_run: hourly/daily/weekly/monthly); produção recomenda crontab horário em worker.php (ou cron.php/run_cron).
  • Execução: cronjobs_exec_custom() e cronjobs_run_discovered() resolvem command→path, rodam via nx_secure_exec_status([phpCli, $path]) (PHP bin resolvido por cronjobs_php_cli), logam resultado em brasilapi_runs/cronjobs_run_log e atualizam last_run/last_status/next_run.
  • Interface (tab.php, 567 linhas, Alpine cronjobsApp()): header com icone clock + badge de recomendação de crontab; callout "Produção"; 4 stat cards (Ativos, Próx. 24h, Falhas 24h, Último tick); 3 abas — Jobs (catálogo de manifests, filtro por plugin, badges ativo/off), Custom (CRUD de CLI com picker de plugin + job → path resolvido, schedule frequency/time) e Histórico (runs paginados com status ok/erro).
  • Integrações: plugins Backup, Email OSINT, Pipeline Control e worker expõem jobs via cronjob.json; o hub é o orquestrador único (não duplica scheduling por plugin).

Stack e ferramentas

  • PHP 8 (strict_types-friendly no backend, sem framework) + MySQL 8 (config no admin_configs)
  • nx_secure_exec_status para workers CLI com PHP bin resolvido (/usr/bin/php, fallbacks /usr/bin/php8.x)
  • crontab do SO agendando worker.php/cron.php/run_cron (soft-cron; não há worker daemon embutido)
  • Alpine.js + Tailwind (tab.php, sem assets/ nem design.css)
  • Plugin API interno: PluginManager tabs/API actions + cronjob.json declarativo

Tags operacionais

  • Cronjobs
  • Agenda
  • Soft-cron
  • Tick
  • Worker
  • CLI custom
  • Plugin NEXUS

Resultado operacional

  • Discovery declarativo: cada plugin expõe jobs em plugins/<slug>/cronjob.json; o hub escaneia apenas plugins ativos e monta o catálogo unificado (dedupe por ID).
  • Soft-crônomo com tick + custom: cronjobs_tick() roda checks de jobs tick:true (backup, email_osint, pipeline) e dispara custom jobs via due-time; schedule com hourly|daily|weekly|monthly + HH:MM.
  • Allowlist de segurança: nenhum path é digitado pelo usuário — o picker lista plugin + job/CLI e o hub resolve o PHP via realpath contra plugins/*/…, cron/*.php e worker.php.
  • Execução isolada: scripts rodam via nx_secure_exec_status (sem shell) com PHP bin resolvido, output capturado e logado.
  • Histórico e stats: até 80 runs em plugin.cronjobs.runs + stats (ativos, próximos 24h, falhas 24h, último tick); cronjobs sem cronjob.json ficam visíveis como "sem CLI".
  • Custom CLI pelo painel: cria/edita/remove jobs sem tocar no servidor — o caminho é resolvido pelo hub a partir do plugin selecionado.

Andamento no GitHub (issues)

Painel em tempo real com as issues mais recentes do repositório.

abertas (amostra): -- fechadas (amostra): -- base: -- ultimas issues

carregando andamento...

Resultados reais

Gerenciador avançado de tarefas agendadas e rotinas periódicas em segundo plano. Permite configurar expressões cron, monitorar o histórico de execuções, auditar saídas e tempos de resposta, e disparar manutenções programadas no ecossistema NEXUS.

Arquitetura e organização

Execução e operação

O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.

Screenshots

Falar sobre este projeto

Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.