XXL-JOB is a distributed task scheduling framework designed for rapid development, simplicity, and lightweight operation. It consists of a scheduler center (admin) and multiple executors. The admin provides a web UI for CRUD job management, scheduling (cron, fix rate, fix delay), routing strategies (first, last, round, random, consistent hash, LFU, LRU, failover, busyover, sharding broadcast), misfire handling, alarm (email), and monitoring. Executors run on any JVM and communicate with the admin via Netty-based HTTP RPC. The framework supports BEAN (annotated methods), GLUE (online Groovy/script editing), script tasks (Shell, Python, PHP, NodeJS, PowerShell), HTTP tasks, and AI tasks (Ollama, Dify, OpenClaw). It includes an OpenAPI for cross-language integration, user management with role-based permissions, and Docker deployment. The architecture is modular: xxl-job-core provides the executor runtime and shared interfaces, xxl-job-admin is the Spring Boot admin application, and sample executors demonstrate integration. External dependencies include MySQL (persistence), Netty (executor server), Groovy (glue tasks), and Spring Boot. The framework is production-ready with HA support for both scheduler and executor clusters.
RuoYi is a production‑ready Java rapid‑development framework for building enterprise back‑office management systems (CMS, CRM, OA, etc.). It is a monolithic Spring Boot application using Apache Shiro for authentication/authorization, MyBatis for persistence, Thymeleaf for server‑side rendering, and a jQuery/Bootstrap frontend with numerous third‑party plugins. The system provides a complete RBAC module (user, role, department, menu management), dictionary and configuration management, operation and login auditing, online user monitoring, Quartz‑based scheduled tasks, and a Velocity‑powered code generator that produces full CRUD modules from database tables. Additional features include dynamic data source switching, XSS/CSRF protection, captcha, file upload/download, Excel import/export with annotation‑driven mapping, and a demo suite for UI components. The architecture follows a modular Maven structure (admin, common, framework, system, generator, quartz) with a shared common module providing utilities, annotations, and exception hierarchy. While the framework is mature and widely adopted, its frontend stack (jQuery, Bootstrap 3‑era plugins) and use of Shiro represent technical drift compared to modern SPA or Spring Security approaches. The codebase is well‑organized and contains several reusable components, but is tightly coupled to its own conventions and lacks microservice readiness.
Apache ShardingSphere ElasticJob is a distributed job scheduling framework providing elastic sharding, failover, misfire handling, and lifecycle management. It is a Java library that can be embedded in applications or used via Spring Boot auto-configuration. The system coordinates jobs across multiple nodes using a registry center (ZooKeeper, etcd, Nacos, or in-memory). It supports multiple job types (simple, dataflow, script, HTTP) and provides RESTful admin APIs, event tracing, and error notification. The architecture is modular with clear SPI-based extensibility for job executors, error handlers, tracing listeners, and registry center providers. The codebase is well-engineered with extensive tests, but retains some legacy integration paths (Spring XML namespace) and tight coupling to ZooKeeper in core modules.