
Deploy cron-rust
Cron Runner Rust — ultra-light HTTP scheduler with second precision
Cron Rust
XavTo/cron-rust
Just deployed
Cron Runner (Rust) — per-second HTTP scheduler
Deploy a tiny Rust service that triggers HTTP requests using 6-field cron expressions (seconds included). Each request carries X-Cron-Secret
for simple middleware-based auth. Supports custom headers and optional body per job.
Deploy and Host
Use the one‑click button on Railway to deploy this template. The service runs as a persistent process and schedules requests internally—no Railway Cron needed. Provide the environment variables below and deploy to your desired region.
About Hosting
This service is designed to run continuously with a very small memory/CPU footprint. It issues outbound HTTP requests at the times defined by your cron expressions. Choose a region close to your target APIs to reduce latency.
Why Deploy
- Replace heavyweight schedulers with a minimal Rust binary.
- Run cron with second-level precision.
- Centralize multiple HTTP jobs in one place (headers, bodies, secrets).
- Keep simple transparent logs for success/failure.
Common Use Cases
- Pinging internal or public endpoints on a schedule.
- Kicking background jobs on a Laravel/Symfony/NestJS/Rails backend via authenticated webhook.
- Refreshing caches, tokens, or pre-warming data.
- Triggering ETL or status checks at fine-grained intervals.
Dependencies for
This template requires only environment variables. No external databases or queues are needed by default.
Deployment Dependencies
- SECRET (required): shared secret sent as
X-Cron-Secret
. - CRON_JOBS (required): the list of scheduled HTTP jobs.
How to use
-
Click Deploy on Railway from this template.
-
In the service Variables, set:
SECRET
: the secret sent asX-Cron-Secret
.CRON_JOBS
: the jobs list (see syntax below).
-
Deploy as a persistent service (not a native Railway cron).
CRON_JOBS
syntax
Jobs are separated by “;” or new lines. Format: METHOD|URL|CRON_EXPR|HEADERS|BODY
METHOD
:GET
,POST
,PUT
,PATCH
,DELETE
,HEAD
,OPTIONS
URL
: HTTP(S) endpoint (query params allowed)CRON_EXPR
: 6-field cron with secondsHEADERS
(optional): comma-separatedName:Value
pairsBODY
(optional): raw string
Examples
GET|https://httpbingo.org/status/204|0 * * * * *||
POST|https://httpbin.org/post|*/30 * * * * *|Content-Type:application/json|{"ping":true}
PATCH|https://postman-echo.com/patch|15 * * * * *|Authorization:Bearer XYZ,Content-Type:application/json|{"name":"demo"}
DELETE|https://postman-echo.com/delete|45 * * * * *||
Logs
The service prints one line per execution:
OK
with the HTTP status on success.FAIL
with either HTTP error (4xx/5xx) or transport error.
Tech
- Rust +
ureq
(sync, minimal) for HTTP. cron
crate for per-second schedules.
Template Content
Cron Rust
XavTo/cron-rustCRON_JOBS
CRON_JOBS — List of cron jobs separated by “;” or new lines. Format: METHOD|URL|CRON_EXPR|HEADERS|BODY • METHOD: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS • URL: full HTTP(S) endpoint (query params allowed) • CRON_EXPR: 6-field cron (with seconds) • HEADERS (optional): comma-separated “Name:Value” pairs • BODY (optional): raw string payload Examples: GET|https://httpbingo.org/status/204|0 * * * * *|| POST|https://httpbin.org/post|*/30 * * * * *|Content-Type:application/json|{"ping":true} PATCH|https://postman-echo.com/patch|15 * * * * *|Authorization:Bearer XYZ,Content-Type:application/json|{"name":"demo"} DELETE|https://postman-echo.com/delete|45 * * * * *||