October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk4 min

Cronflower: Turn a Spring Boot App into a Distributed Cron Cluster

Cronflower is an open-source Spring Boot scheduler with scheduler and executor roles, a web console and optional shared storage. Here is how it works and what to verify.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cronflower is an open-source scheduler for Spring Boot. Its author, Fred Feng, pitches it as a way to get a stateful, clustered scheduler with a web console, without adding an external database, broker or coordinator. His framing: “@Scheduled is fine until it isn’t. It runs in one JVM, so the moment you scale to two instances the job fires twice.” That is the author’s argument for the project, not a rule for every Spring scheduling setup.

Everything below comes from the author’s usage article on DEV Community, which was also republished on WPS. We have not inspected the repository or run the software. Treat the capabilities as the project’s claims and check them against the release you plan to use.

As an Amazon Associate I earn from qualifying purchases.

The core idea: schedulers and executors

Cronflower splits the work into two process roles:

  • Scheduler: owns the schedules and task state, works out what is due, and dispatches it. The author calls the scheduling engine Cronsmith.
  • Executor: your Spring Boot application. It declares @Task methods, registers them with the scheduler, and runs them when dispatched.

Several scheduler nodes can form a cluster with an elected leader. The aim is that your business code lives in the executor app, while “when and whether to run” lives in the scheduler tier.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Declaring tasks

A task is a bean method annotated with @Task. The article shows several schedule forms:

Schedule form Example in the article
Cron expression Every five seconds
Fixed interval Every ten seconds
ISO-8601 duration Ninety minutes
Alternate ycron parser Day-of-year scheduling

A task method can take an optional String parameter, filled from the task’s initialParameter. That value can be a SpEL template, which the article says is evaluated on the executor.

Two kinds of task

Bean tasks

These are the @Task methods above. The scheduler dispatches them to an executor, which runs the code.

HTTP tasks

An operator defines a URL and HTTP method in the console or through the REST API. The scheduler nodes make the request themselves, so no executor bean is needed. This suits triggering existing endpoints, but it means the scheduler tier needs network access to those targets.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Reliability controls

The usage tour demonstrates these per-task settings. They are the author’s description, not verified behavior.

Setting Purpose
maxRetryCount, retryInterval Retry a failed run, with a delay between attempts
timeout Per-run time limit
Misfire policy: SKIP, FIRE_ONCE_NOW, FIRE_ALL What to do with runs missed while the system was down or busy: drop them, run once, or run every missed one
repeatCount, stopAt Bound a job by number of runs or by an end date

Misfire choice matters most for jobs that are not idempotent. FIRE_ALL after a long outage can replay many runs at once, so test it before relying on it.

Operator console and observability

The console and API are described as supporting run-now, pause, resume, cancel and execution history. The author also says the starter exposes health and Prometheus endpoints. In the local demo the console is on port 7200.

Clustering and persistence

According to the article, scheduler nodes elect a leader by gossip, and executors send heartbeats so the scheduler knows which are alive. Executor routing is configurable. The storage options differ in what they allow:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Store What the article says
In-memory Supported; state is not kept across restarts, which is the usual meaning of in-memory
Node-local H2 or SQLite Each node has its own store; scheduling stays leader-only
Shared MySQL or PostgreSQL Enables group sharding across scheduler nodes

The “no external database” pitch therefore applies to the simpler modes. If you want sharding, the article ties it to a shared MySQL or PostgreSQL database.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Trying it locally

  1. The article provides a run-local.sh script that starts a scheduler, the console and an example executor.
  2. Open the console on port 7200 and watch the example tasks run.
  3. For a multi-node setup, the article mentions a multi-node configuration and a run-docker.sh script.

Treat the demo ports and any demo credentials as example settings, not production defaults. Change them and put the console behind proper authentication before exposing it.

Adding it to a project

The article’s dependency example lists two starter artifacts, one for the scheduler and one for the executor, both at 1.0.0-SNAPSHOT. A snapshot is a development build, not a stable release. We could not establish current artifact availability or which Java and Spring Boot versions are supported, so check the project’s repository and Maven listings before depending on it.

What to verify before relying on it

  • Scale: the article speaks qualitatively of “hundreds of thousands of tasks” and fast startup but gives no benchmark, test conditions or measured result. Load-test your own workload.
  • Duplicate prevention: test what happens during leader failover, executor loss and network partitions. Confirm whether delivery is at-most-once or at-least-once, and make tasks idempotent either way.
  • Release state: check the license, release tags, supported Java and Spring Boot versions, and recent maintenance activity.
  • Security: review authentication on the console and REST API, and on executor-to-scheduler communication.
  • Storage choice: confirm in the release you use that node-local stores really stay leader-only and that sharding needs a shared database.
  • Independence: the quote that Cronflower is “that whole stack, open source: a distributed, stateful scheduler for Spring Boot with a web console, that forms its own cluster and needs no external database, broker or coordinator” is the author’s own promotion. The WPS copy is a republication, not a separate validation.

The Bottom Line

Cronflower is worth a local trial if single-JVM @Scheduled no longer fits and you want a scheduler with a console and no required external coordinator. The evidence so far is one author’s usage tour of a snapshot build. Run it, break it with failover tests, and read the code before it takes over production jobs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.