Framework Java distribuído para agendamento de tarefas CRON, em intervalo fixo, com atraso e no estilo MapReduce, em nós de servidor e worker.
xuxueli/xxl-job
Plataforma distribuída de agendamento de tarefas com console web, suporte a gatilhos Cron e por intervalo fixo, jobs de broadcast particionados, failover e novas tentativas.
- Estrelas
- 30,622
- Forks
- 11,494
- Issues abertas
- 72
- Último commit
- há 13 dias
O que é?
XXL-JOB é uma plataforma distribuída de agendamento de tarefas para aplicações Java. Os jobs são criados, iniciados, interrompidos e monitorados em um console web, enquanto os executores rodam a lógica dos jobs em um ou mais processos worker que se registram em um agendador central. O agendador foi projetado para operar em cluster, e os executores também podem ser implantados em clusters para garantir alta disponibilidade na execução dos jobs.
A plataforma atende às necessidades comuns de agendamento: gatilhos Cron, por taxa fixa e por atraso fixo, gatilhos via API e manuais, além de dependências entre jobs pai e filho. A execução é controlada por estratégias de roteamento como round robin, aleatória, hash consistente e failover, além de jobs de broadcast particionados que rodam em todos os nós executores. Jobs com falha podem ser tentados novamente, jobs que excedem o tempo limite são interrompidos e alertas de falha são enviados por e-mail, com um ponto de extensão para outros canais.
Os recursos operacionais incluem edição de jobs online por meio de uma IDE web GLUE, que oferece suporte a scripts em shell, Python, Node.js, PHP e PowerShell; logs de execução contínuos; relatórios de execução; permissões por usuário e por executor; e logs de auditoria. A comunicação entre o agendador e os executores é criptografada, e uma OpenAPI baseada em REST permite a integração de serviços escritos em outras linguagens.
Recursos principais
- 01Console web para criar, iniciar, interromper e editar jobs sem precisar fazer novo deploy.
- 02Gatilhos Cron, por intervalo fixo, por atraso fixo, via API, manuais e com dependência entre jobs pai e filho.
- 03Jobs de broadcast particionados e estratégias de roteamento que incluem round robin, hash consistente e failover.
- 04Limites de tempo para jobs, novas tentativas em caso de falha e alertas por e-mail, com um ponto de extensão para outros canais.
- 05IDE web GLUE para jobs de scripts e código editados online, com histórico de versões.
- 06OpenAPI REST independente de linguagem para integrar executores escritos em outras linguagens.
Casos de uso
- Executar jobs agendados de sincronização de dados ou liquidação em um cluster de serviços Java.
- Dividir um grande processamento em lote em partições executadas em paralelo por vários nós executores.
- Agendar a execução de scripts de manutenção em shell ou Python, com logs e alertas centralizados.
- Substituir jobs cron espalhados por vários servidores por um único console de agendamento monitorado.
Início rápido
- 1
Clone o repositório do GitHub
- 2
Inicialize o banco de dados com o script SQL do repositório
- 3
Execute o console de administração com Docker
docker pull xuxueli/xxl-job-admin
Antes de usar
- Licenciado sob GPL-3.0, uma licença copyleft que exige que trabalhos derivados sejam disponibilizados como código aberto sob os mesmos termos.
- Requer um backend Java e a configuração de um banco de dados, então hospedar por conta própria exige algum esforço.
Tópicos
Perguntas frequentes
- O que é xxl-job?
- Plataforma distribuída de agendamento de tarefas com console web, suporte a gatilhos Cron e por intervalo fixo, jobs de broadcast particionados, failover e novas tentativas. XXL-JOB é uma plataforma distribuída de agendamento de tarefas para aplicações Java. Os jobs são criados, iniciados, interrompidos e monitorados em um console web, enquanto os executores rodam a lógica dos jobs em um ou mais processos worker que se registram em um agendador central. O agendador foi projetado para operar em cluster, e os executores também podem ser implantados em clusters para garantir alta disponibilidade na execução dos jobs.
- xxl-job é gratuito? Qual é a licença?
- xxl-job é open source sob a licença GPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- xxl-job ainda é mantido?
- Manutenção ativa. O último commit de xxl-job foi em 9 de out. de 2026.
- Para que posso usar xxl-job?
- Executar jobs agendados de sincronização de dados ou liquidação em um cluster de serviços Java. Dividir um grande processamento em lote em partições executadas em paralelo por vários nós executores. Agendar a execução de scripts de manutenção em shell ou Python, com logs e alertas centralizados. Substituir jobs cron espalhados por vários servidores por um único console de agendamento monitorado.
- Como instalar xxl-job?
- Clone o repositório do GitHub Inicialize o banco de dados com o script SQL do repositório Execute o console de administração com Docker: docker pull xuxueli/xxl-job-admin
- Onde consigo xxl-job?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/xuxueli/xxl-job
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Orquestrador de workflows auto-hospedável que executa scripts existentes, comandos SSH e containers a partir de YAML declarativo, como um único binário e sem banco de dados.
Dashboard de terminal baseado em Textual para criar, editar, pausar e monitorar cron jobs em máquinas locais e servidores remotos via SSH.
Cliente Java para Valkey e Redis que adiciona coleções distribuídas, locks, filas e serviços sobre os comandos básicos.
Plataforma open source em TypeScript para criar e implantar agentes de IA duráveis e de longa duração e workflows em background, com retries, filas e observabilidade.
Framework Java opinativo para criar aplicações e serviços Spring prontos para produção, com configuração mínima.