Skip to content

Add scheduled job guardrails skill and prompt - #87

Merged
rmkr-dev merged 2 commits into
mainfrom
skillbook/scheduled-jobs-shedlock-guardrails
Nov 5, 2026
Merged

rmkr-dev merged 2 commits into
mainfrom
skillbook/scheduled-jobs-shedlock-guardrails

Conversation

@rmkr-dev

@rmkr-dev rmkr-dev commented Nov 5, 2026

Copy link
Copy Markdown
Owner

Adds a Skillbook entry and a matching Promptbook entry for running recurring jobs safely in Spring Boot services with several replicas on AKS.

Skill: scheduled-jobs-shedlock-guardrails

  • Placement per job: in-app @Scheduled + ShedLock, Kubernetes CronJob, leader election, or queue-driven, with trade-offs
  • ShedLock with DB time, stable lock names, LockAssert, lockAtMostFor / lockAtLeastFor sized from measured runtime; skips, not queues, and not fencing
  • Idempotent watermark-based work in bounded chunks with a time budget; scheduler pool sizing and graceful shutdown inside the pod grace period
  • Cron zones and DST, six-field Spring cron vs five-field Kubernetes cron, scheduling on/off property
  • CronJob concurrencyPolicy: Forbid, startingDeadlineSeconds, timeZone, backoffLimit, activeDeadlineSeconds, ttlSecondsAfterFinished, job profile with real exit codes
  • Run logs, last-success gauge and "not run in N intervals" alerts; config, Flyway table, CronJob manifest, checklist, anti-patterns, SKILL.md stub

Prompt: make-scheduled-jobs-replica-safe

  • Job inventory first, then placement, locks, idempotency, CronJob manifests, observability and rollout
  • Two-instance Testcontainers test proving one run per tick before scaling out; no replicas: 1 workarounds

Catalogs go to 51 skills / 51 prompts. node scripts/site-check.mjs passes locally.

@rmkr-dev
rmkr-dev merged commit 3238f57 into main Nov 5, 2026
1 check passed
@rmkr-dev
rmkr-dev deleted the skillbook/scheduled-jobs-shedlock-guardrails branch November 5, 2026 05:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant