返回资讯中心
外部精选
软件工程
#开发者实时流

Scheduler0

Set up, run, and scale scheduled jobs — without the guesswork.

Hacker News 最新vnwaokocha2026/10/24 · 21 天前26 分钟阅读

以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。

Set up, run, and scale scheduled jobs — without the guesswork.

Say goodbye to silent failures and timezone headaches. Scheduler0 helps modern teams schedule jobs across any cloud, monitor execution in real time, and recover automatically when things go wrong.

Watch the full demo · 15 min

Built for Developers

Scheduler0 is more than a cron runner — it's your automation engine, built with DX and observability in mind.

Real-time logs, job history, success rates, and alerts.

Run containers, webhooks, scripts, or cloud functions.

Execute jobs to AWS, GCP, Azure — or bring your own environment.

Official client libraries and a CLI to schedule jobs however you build.

Prefer raw HTTP? Everything is available via the REST API.

Let your end users describe their scheduling needs in plain English. AI handles the complexity, you focus on building.

import { Client } from "@scheduler0/scheduler0-node-client";

const scheduler0 = Client.newAPIClient( "https://api.scheduler0.com", "v1", process.env.SCHEDULER0_API_KEY!, process.env.SCHEDULER0_API_SECRET!, );

// 1. Your user just describes what they want — in plain English. const [result] = await scheduler0.createJobFromPrompt({ prompt: "Email Acme a recap every Monday at 9am once the trial ends, for 8 weeks", purposes: ["customer_success", "trial_engagement"], events: ["trial_ended"], // anchor timing to a real-world event recipients: ["success@acme.com"], channels: ["email", "slack"], timezone: "America/New_York", });

// 2. Scheduler0 resolves the intent into a structured schedule. const [plan] = result.jobs; plan.kind; // "DIGEST" plan.recurrence; // "every week" plan.cronExpression; // "0 9 * * 1" plan.startDate; // trial_ended + 7 days plan.endDate; // auto-expires 8 weeks later plan.subject; // "Your weekly Acme recap"

// 3. Commit it as a real job — recurring, event-anchored, // time-boxed, retried, and scoped to a project + executor. await scheduler0.createJob({ projectId: 123, timezone: plan.timezone ?? "America/New_York", spec: plan.cronExpression, // recurring cron startDate: plan.startDate, // begins after the event endDate: plan.endDate, // stops on its own data: JSON.stringify({ subject: plan.subject, channel: plan.channel, recipients: plan.recipients, delivery: plan.delivery, }), retryMax: 3, // auto-retry on failure status: "active", executorId: 42, // webhook, container, or fn createdBy: "ai-assistant", });

Developer Experience You'll Love

From CLI to UI to Terraform — schedule and manage jobs however you work.

Create, test, and monitor jobs from your terminal.

Automate everything with REST or native SDKs (Go, Python, JS).

Scheduler0 doesn't dictate what your job looks like. It delivers a small, predictable envelope — full scheduling context wrapped around a data blob that is entirely yours.

Every invocation arrives with the context you'd otherwise have to look up: which project and account it belongs to, the cron spec that fired it, the timezone and its offset, the retry budget, and when the job last ran and how that went.

{ "job": { "projectId": 311, "spec": "0 2 * * *", "data": "{"report":"nightly-revenue","format":"parquet","recipients":["finance@acme.com"],"partition":"2026-08-01"}", "executorId": 1, "startDate": "2026-07-01T02:00:00-04:00", "endDate": "2026-12-31T02:00:00-05:00", "lastExecutionDate": "2026-07-31T01:46:23-04:00", "timezone": "America/New_York", "timezoneOffset": -14400, "retryMax": 3, "dateCreated": "2026-07-31T01:46:23-04:00", "accountId": 1, "status": "active" }, "lastExecutionDateTime": "2026-08-01T02:00:00-04:00", "lastExecutionStatus": "scheduled" }

Your contract, not ours

data is an opaque string carried through verbatim — put any JSON your handler wants in it. Scheduler0 stores and delivers it untouched.

Webhook, cloud function, or a local executor running behind your firewall — every target receives the identical envelope, so handlers port between runtimes unchanged.

Turn on payload aggregation and jobs sharing an executor and fire time arrive in one call as {aggregated, jobs} — one round trip instead of N.

{ "aggregated": true, "jobs": [ { "job": { "id": 9134, "spec": "0 2 * * *", "data": "{…}" }, "lastExecutionDateTime": "2026-08-01T02:00:00-04:00", "lastExecutionStatus": "scheduled" }, { "job": { "id": 9135, "spec": "0 2 * * *", "data": "{…}" }, "lastExecutionDateTime": "2026-08-01T02:00:00-04:00", "lastExecutionStatus": "scheduled" } ] }

Fire it now — don't wait for 2 a.m.

POST /executors/{id}/test-invoke calls your executor immediately with a synthetic job. Nothing is created, nothing is logged, nothing is rescheduled.

curl -X POST https://api.scheduler0.com/api/v1/executors/1/test-invoke
-H "X-API-Key: $SCHEDULER0_API_KEY"
-H "X-Secret-Key: $SCHEDULER0_SECRET_KEY"
-H "X-Account-ID: $SCHEDULER0_ACCOUNT_ID"
-H "Content-Type: application/json"
-d '{ "job": { "spec": "0 2 * * *", "timezone": "America/New_York", "retryMax": 3, "data": "{"report":"nightly-revenue","partition":"2026-08-01"}" }, "age": "24h", "executionTime": "2026-08-01T02:00:00-04:00" }'

response.json 200 OK · durationMs: 1

{ "data": { "test": true, "executorId": 1, "executorType": "webhook_url", "success": true, "startedAt": "2026-08-01T01:46:23.442404-04:00", "finishedAt": "2026-08-01T01:46:23.443657-04:00", "durationMs": 1, "payload": { "job": { "spec": "0 2 * * *", "data": "{"report":"nightly-revenue","partition":"2026-08-01"}", "lastExecutionDate": "2026-07-31T01:46:23-04:00", "timezone": "America/New_York", "retryMax": 3, "status": "active" }, "lastExecutionDateTime": "2026-08-01T02:00:00-04:00", "lastExecutionStatus": "scheduled" } }, "success": true }

Time travel the job

Set age to any Go duration and the synthetic job looks that old; set executionTime to control the run timestamp your handler sees.

The response echoes the exact payload delivered, so you can diff what your endpoint received against what you expected — no logging required on your side.

success plus timing tells you whether the executor accepted the call, and error explains it when it didn't — before you trust it to a schedule.

Scheduler0 is designed to be truly cloud-native. The core platform doesn't rely on cloud providers for data storage, using SQLite and Raft consensus instead.

High-performance, compiled language ensures reliability and speed across all environments.

No cloud provider lock-in. Self-contained data storage with distributed consensus for high availability.

Run on AWS, GCP, Azure, on-premises, or any infrastructure that fits your needs.

For teams that need more control, we offer deployment on your infrastructure with full support and management.

Deploy Scheduler0 on your own infrastructure. We work directly with your team to set up and configure the platform.

Let us manage the infrastructure for you. We handle deployment, updates, and maintenance while you focus on building.

1,000 job executions per month

1,000 AI classify requests per month

1,000 AI prompt requests per month

Job payload up to 3kb

Up to 3 retries

30 days executions logs retention

$5 free AI credits (platform model, no key needed)

Bring your own AI model key (BYOK)

Paid

Monthly Yearly

/month

100,000 job executions per month

100,000 AI classify requests per month

100,000 AI prompt requests per month

10 seats for team members

Job payload up to 1mb

Up to 15 retries

90 days execution logs retention

$5 free AI credits (platform model, no key needed)

Bring your own AI model key (BYOK)

Teams

Contact Us

Everything in Paid plan

Deploy to your infrastructure

Custom SLAs

Unlimited seats for team members

SSO & SAML

Group based access control

Dedicated support

Migration support

Priority feature requests

$5 free AI credits (platform model, no key needed)

Bring your own AI model key (BYOK)

Schedule a Demo

Frequently Asked Questions

Everything you need to know about Scheduler0. Can't find an answer? Check the full docs.

Scheduler0 is a cloud-native platform for scheduling and executing cron jobs. Schedule recurring or one-off tasks across AWS, GCP, Azure, or your own infrastructure, monitor every execution in real time, and let Scheduler0 handle retries and recovery automatically — no cron infrastructure to manage.

Jobs use a standard 6-field cron expression (seconds, minutes, hours, day-of-month, month, day-of-week), shorthand macros like @hourly or @daily, and interval notation like @every 5m.

Every job supports an IANA timezone, optional start and end dates, and a JSON payload passed to the executor at runtime. To schedule a one-off task, omit the cron spec and set only a startDate.

The POST /api/v1/ai/prompt endpoint converts a plain-English description into a fully structured job configuration — including cron spec, timezone, and schedule kind. Each call costs 1 credit.

You can bring your own model key (BYOK) and configure OpenAI, Anthropic, AWS Bedrock, or OpenRouter as the AI provider via the account AI settings. Live request/response examples are on the AI page.

API calls are authenticated with three headers: X-API-Key, X-Secret-Key, and X-Account-ID. You create credentials in the dashboard or via the API, and scope them to read, write, and/or execute permissions.

Credentials expire after 90 days. Rotate by creating a new credential, updating your services, then archiving the old one.

LimitFreePaid ($49/mo) Executions / month1,000100,000AI classify requests / month1,000100,000AI prompt requests / month1,000100,000Job payload size3 KB1 MBMax retries315Log retention30 days90 days

For custom limits and dedicated infrastructure, see our Teams plan.

Yes — self-hosting is available on the Paid or Teams plan. Deploy the Go binary on your own cloud or on-premises servers. Scheduler0 uses SQLite and Raft consensus — no cloud database or message broker required. You own all the data.

Self-hosted deployments unlock admin APIs for account management, cluster operations, and automated backup and restore. See the self-hosting docs or contact us about managed deployment options.

Official clients are available for Go, Node.js / TypeScript, and Python. A CLI is also provided to support terminal workflows and local executor management. Terraform support is available for infrastructure-as-code setups.

All clients support the full REST API; the full OpenAPI specification is published at api-reference.scheduler0.com.

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →