# Schked

> Guide for working with Schked, a Ruby recurring-job scheduler built on top of rufus-scheduler.

- Skill: `bibendi/schked` (Agent Skill, multi-file: 13 files)
- Install (CLI): `npx skillmds@latest add bibendi/schked`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bibendi/schked/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: bibendi (https://skillmd.com/u/bibendi)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/bibendi/schked

---


# Schked

Schked is a framework-agnostic Ruby wrapper around [rufus-scheduler](https://github.com/jmettraux/rufus-scheduler) for running recurring jobs. It adds Redis-based distributed locking (so only one scheduler instance is active at a time), Rails integration, callbacks, and a small CLI.

## Routing Map

| Question | Go to |
|---|---|
| How does the scheduler start, run, and shut down? | `references/architecture.md` |
| How do I install and configure it? | `references/initialization.md` |
| What changed between versions or what is deprecated? | `references/migration.md` |
| How do I perform a concrete task? | `references/recipes/{use-case}.md` |
| How do I configure the Kubernetes liveness probe? | `references/recipes/configure-liveness-probe.md` |
| What is broken and how do I fix it? | `references/troubleshooting.md` |

## Reading Order

1. Read `references/architecture.md` first to understand the runtime model, especially the threading rules and the Redis lock.
2. Read `references/initialization.md` when the task involves setup or configuration.
3. Read the specific `references/recipes/{use-case}.md` for the task at hand.
4. Read `references/migration.md` only when upgrading or handling deprecations.
5. Read `references/troubleshooting.md` only when diagnosing failures.

## Critical Constraints

- Do not rely on class or method signatures from this skill. Open the gem source or the rufus-scheduler documentation when you need exact API details.
- Verify whether the current environment is `standalone` or Redis-locked before changing scheduling behavior.
- Prefer linking to rufus-scheduler cron/every/in documentation over duplicating scheduling syntax.

