// the find
crazy-max/swarm-cronjob
Create jobs on a time-based schedule on Docker Swarm
swarm-cronjob runs scheduled jobs on Docker Swarm by watching services via the Docker API and triggering them on cron schedules defined in service labels. It fills a real gap: Swarm has no native job scheduling, and this avoids standing up a separate scheduler. Aimed at teams still on Swarm who need periodic tasks without migrating to Kubernetes.
Label-based configuration means zero separate config files — the schedule lives with the service definition where it belongs. The Docker API watch loop means config changes are picked up automatically without restarts. Vendored dependencies and a single static binary make deployment straightforward. The e2e test workflow in CI is a good sign that the timing behavior is actually verified, not just unit-tested.
Docker Swarm itself is in maintenance mode, so this is a solution tied to a shrinking ecosystem — any team evaluating it now is implicitly betting on Swarm for the long haul. There's no built-in missed-run detection: if swarm-cronjob is down when a job was supposed to fire, that run is silently skipped with no alerting or catch-up mechanism. Concurrency control is limited — if a job runs longer than its schedule interval, you get overlapping service instances with no guard. At 879 stars, the community is small, meaning edge cases and bugs may sit open for a while.