agent-qa-browser-regre…
Use when verifying an existing browser journey with agent-qa against a running Spring Boot application. Covers target selection,…
Use when creating or reviewing @Scheduled jobs, cron/time-zone configuration, overlapping runs or multi-instance scheduling. Not for Spring Batch chunk/restart mechanics or arbitrary async dispatch.
Claude Code
$ npx -y skills add rrezartprebreza/spring-boot-skills --skill scheduled-tasks --agent claude-code
Codex
$ npx skills add rrezartprebreza/spring-boot-skills --skill scheduled-tasks -a codex -y
Cursor
$ npx skills add rrezartprebreza/spring-boot-skills --skill scheduled-tasks -a cursor -y
Gemini CLI
$ npx skills add rrezartprebreza/spring-boot-skills --skill scheduled-tasks -a gemini-cli -y
GitHub Copilot
$ npx skills add rrezartprebreza/spring-boot-skills --skill scheduled-tasks -a github-copilot -y
OpenCode
$ npx skills add rrezartprebreza/spring-boot-skills --skill scheduled-tasks -a opencode -y
Windsurf
$ npx skills add rrezartprebreza/spring-boot-skills --skill scheduled-tasks -a windsurf -y
name: scheduled-tasks description: > Use when creating or reviewing @Scheduled jobs, cron/time-zone configuration, overlapping runs or multi-instance scheduling. Not for Spring Batch chunk/restart mechanics or arbitrary async dispatch.
Use Framework 6 scheduling APIs and the project's Boot BOM; the template uses Java 17. Reactive scheduled methods and virtual-thread scheduling require the appropriate Framework 6.1+/Boot 3.2+ baseline. Do not copy those features into older Boot 3 applications.
Establish schedule, time zone, maximum run duration, missed-run behavior and replica count before choosing an implementation. Enable scheduling once. Spring cron has six fields, including seconds. Specify a zone rather than relying on a deployment host default, and test daylight-saving transitions when the business contract uses local time.
Fixed delay measures from completion; fixed rate follows a start-time cadence. Neither is a cluster-wide lock. Adding @Async detaches completion from the scheduled invocation and can allow overlapping work. Multiple scheduled declarations or bean instances can also duplicate execution. Do not change an existing cadence just to hide a slow job.
[StaleOrderSchedule](templates/StaleOrderSchedule.java) is a thin, disabled-by-default cron adapter. Supply a Clock and a SweepAction bean; enable @EnableScheduling in configuration. [Good configuration](examples/good-schedule.yml) requires an explicit cron to enable it; [the bad example](examples/bad-overlap.java) starts untracked duplicate work.
Every application instance can register the trigger. Decide whether all replicas may work, one leader triggers, or workers claim disjoint persisted items. Reuse existing coordination (for example a clustered scheduler or a tested lease library); do not invent a JVM boolean lock or call Redis SETNX without ownership, expiry and stale-owner handling.
A lease can expire while the original worker is still running. Use idempotent effects and, where stale owners can corrupt state, fencing checked by the protected resource. A lock alone does not provide exactly-once effects. Persist progress and retry intent for mandatory work; Spring's in-process schedule does not replay missed fires after downtime.
Keep the scheduling adapter small. Let a separate service claim a bounded batch and enforce tenant boundaries and transaction rules. Avoid one transaction over an unbounded scan or a remote call. Handle uncertain external outcomes with provider idempotency or reconciliation. The template's SweepAction is an application integration point, not an implemented lock or queue.
Set runtime and I/O limits. Observe last successful completion, duration, failures and backlog age using bounded metric labels. Logging an exception is not a retry or an alerting policy. Use the project's scheduler shutdown policy and deployment grace period; interruption does not automatically roll back remote effects. Virtual threads still need downstream limits; fixed-delay tasks on SimpleAsyncTaskScheduler share its scheduler thread.
Test cron parsing and disabled configuration without waiting for wall-clock runs. Inject a Clock into time-dependent work. Add integration tests for competing replicas, lease expiry, partial failure and restart when using coordination. The included fixture checks the adapter and trigger registration only; it does not implement distributed scheduling.
Production-grade Claude Code and Codex skills for Spring Boot developers
Use when verifying an existing browser journey with agent-qa against a running Spring Boot application. Covers target selection,…
Use when adding Spring AI-specific model observations, token usage, latency, externally configured cost attribution, advisor…
Use when versioning Spring MVC or WebFlux APIs in Spring Boot 3 / Spring Framework 6. Covers explicit URL, header, and media-type…
Use when adding or debugging Spring @Async work, executor saturation, asynchronous failures or lost thread context. Not a…
Use when introducing or correcting grouped Spring Boot configuration, typed property binding, validation, profiles or secret…
Use when packaging a Spring Boot 3 application as an OCI image or GraalVM native executable. Covers buildpacks, layered images,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.