Skip to content

Cron Jobs

Cron jobs that never fail silently.

Schedule jobs on one server or a whole label, with retries, timeouts, overlap control and a full run history. When something fails, the right person finds out before your customers do.

Runs

Every day at 03:00

Next runs

crontab vs. Fwoop

Everything crontab never told you.

Where it lives
crontab: A crontab on each server. Finding a job means SSH-ing into boxes until you find it.
Fwoop: One schedule for the whole fleet, in the dashboard or in git.
When it fails
crontab: An email to root that nobody reads, if MAILTO is set at all.
Fwoop: An alert to the job's owner in Slack, email or a webhook.
Output
crontab: Appended to a log file, if someone remembered the redirect.
Fwoop: Exit code, duration and output of every run, searchable.
Retries
crontab: None. A network blip means the job just didn't happen.
Fwoop: Automatic retries with backoff, up to the limit you set.
Overlap
crontab: A slow run and the next one run at the same time.
Fwoop: Skip, queue or allow, per job.
Timezones
crontab: Whatever the server is set to, and daylight saving time surprises.
Fwoop: Any IANA timezone per job, with DST handled.
Changes
crontab: No history of who changed what.
Fwoop: Every change in the audit log, or reviewed in a pull request.

Cron Studio

Every job on every server, on one screen.

See what runs where, what failed last night and what runs next. Open any run for its full output.

Cron Studio listing five jobs with their schedules, targets, recent run results and next run. The selected job failed once and succeeded on retry, and its run log shows both attempts.

Jobs as code

Or keep your schedule in git.

Describe jobs in fwoop.yaml next to your code. The dashboard and the file stay in sync, and you choose which one is the source of truth.

  • Schedule changes get reviewed in pull requests like any other change.
  • fwoop apply shows a diff before anything changes.
  • Edits made in the dashboard show up as drift until the file catches up.
fwoop.yaml
jobs:
  nightly-report:
    schedule: "0 3 * * *"      # every day at 03:00
    timezone: Europe/Berlin
    target: role=worker
    service: worker            # run inside the worker image
    command: node scripts/report.js
    timeout: 15m
    retries: 3
    overlap: skip
    notify: [slack:#ops]

Questions about cron jobs

Can I import my existing crontabs?

Yes. The agent reads the crontabs on a server and suggests a Fwoop job for each entry. You review them before switching the old entries off.

What if the server is offline when a job should run?

The run is marked as missed and the owner gets an alert. You can choose to catch up once the server is back.

Do jobs still run if the control plane is unreachable?

Yes. Each agent keeps its schedule locally and reports the results once it reconnects.

How many jobs can I have?

Ten on the free plan and unlimited on paid plans.

Bring your first server online in five minutes.

Start free with three servers. No credit card, no sales call, and your workloads stay on machines you own.