Dkron is a production-grade, distributed cron and job scheduling system written in Go. It runs as a cluster of nodes coordinated via HashiCorp Raft for consensus and Serf for membership, providing fault tolerance and automatic leader election. The system exposes a REST API, a gRPC API, and an embedded React admin UI. Jobs are executed through a plugin architecture supporting multiple executors (shell, HTTP, Kafka, NATS, RabbitMQ, Google Cloud Pub/Sub, gRPC) and processors (log, file, syslog, Fluentd). The scheduler extends standard cron syntax with custom descriptors like @at, @after, and @manually, and supports retries, concurrency control, job chaining, and notifications via email/webhook. State is persisted in embedded BuntDB for application data and BoltDB for the Raft log, with optional cloud auto-join via go-discover. The project also includes a commercial Pro tier (ACL, encryption, failover) referenced in the codebase, but the core open-source code is fully functional and well-tested with unit, integration, and end-to-end tests.
sidekiq-cron is a Ruby gem that adds recurring job scheduling to Sidekiq via cron expressions or natural language. It runs a poller thread alongside Sidekiq workers that checks Redis every configurable interval (default 30s) to enqueue jobs whose cron time matches. Jobs are stored in Redis hashes, and duplicate enqueuing across multiple Sidekiq processes is prevented using Redis sorted sets. The gem provides a web UI for managing jobs (enqueue, disable, enable, delete) and supports namespacing, ActiveJob integration, GlobalID argument serialization, and configuration of polling intervals, grace periods, and more. It depends on fugit for cron parsing and cronex for human-readable cron descriptions. The architecture is a clean extension of Sidekiq's own scheduler: it prepends into Sidekiq::Launcher and subclasses Sidekiq::Scheduled::Poller. The codebase is well-tested (Minitest + Mocha) and maintained, with CI running against multiple Ruby and Sidekiq versions.
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.