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) ecronjob.jsoncomo manifesto declarativo de jobs (mesmo espírito dofastr.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) ecronjobs_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) eplugin.cronjobs.meta— leitura em memória, dedupe porkind+query_key. - Segurança e allowlist:
cronjobs_resolve_command()valida path contra(?^plugins/[a-z0-9_-]+/.+\.php$ | cron/*.php | worker.php$)viarealpath, rejeita../null/space e confirma prefixo dentro do root. - Workers/cron (soft-cron):
cronjobs_tick()itera jobstick:truechamandofunctions.check, depoiscronjobs_run_custom_due()dispara custom jobs cujonext_run <= nowe recalcula (matchcronjobs_calc_next_run: hourly/daily/weekly/monthly); produção recomenda crontab horário emworker.php(oucron.php/run_cron). - Execução:
cronjobs_exec_custom()ecronjobs_run_discovered()resolvem command→path, rodam vianx_secure_exec_status([phpCli, $path])(PHP bin resolvido porcronjobs_php_cli), logam resultado embrasilapi_runs/cronjobs_run_loge atualizamlast_run/last_status/next_run. - Interface (
tab.php, 567 linhas, AlpinecronjobsApp()): header com iconeclock+ 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 noadmin_configs) nx_secure_exec_statuspara 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.jsondeclarativo
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 jobstick:true(backup, email_osint, pipeline) e dispara custom jobs via due-time; schedule comhourly|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
realpathcontraplugins/*/…,cron/*.phpeworker.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 semcronjob.jsonficam 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.
live feed
abrir issues no githubcarregando andamento...
não foi possivel carregar as issues agora. abra no github pelo link acima.
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
- PHP 8
- MySQL 8
- Alpine.js
- Tailwind CSS
- Nix crontab
- Plugin NEXUS
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.