A job scheduling system based on cron and gRPC.
Users register services (gRPC servers), add jobs with cron specs, and the scheduler triggers jobs at scheduled times via gRPC calls.
- Cron-based job scheduling with gRPC triggers
- Web UI for managing services, jobs, tasks, and logs
- Pluggable storage backend
- gRPC + HTTP API for programmatic access
![]() |
![]() |
![]() |
![]() |
graph TB
U[SDK RPCClient]
W[Web UI]
subgraph kk_scheduler
C[API Handlers]
G[Global Client]
F[Cron Scheduler]
C -- Update Job --> F
end
subgraph App
A[kk_scheduler Client server]
A2[User Jobs]
A -- Trigger --> A2
end
subgraph Storage Layer
J[Store Interface]
I[Default Postgres Store]
end
U -- Get/Put/Enable/Trigger Job/Service --> C
W -- Get/Put/Enable/Trigger Job/Service --> C
C --> G
F --> G
G -- RPC Trigger --> A
G <-- Get/Put --> J
J --> I
docker compose up -dVisit http://localhost:8668
go get github.com/cruvie/kk_scheduler/go@latestRun a gRPC server that implements kk_scheduler.UnimplementedKKScheduleTriggerServer
Put a service and job into kk_scheduler, then enable the job.
See readme_test.go
Any test case PR is welcome.
kk_scheduler uses Postgres as default storage engine, but any storage engine that implements StoreDriver can be used.
- Create a
store_xxxx.goininternal/store_driver/like postgres.go - Register it in
NewStoreDriver()in driver.go - Add config field in config.go and config.toml
- support authentication
- record operation for events(update/trigger)



