All guides
Tutorial/ 6 min read/

Schedule Cron Jobs on Launchverse (No Linux Server Required)

Use Launchverse's built-in cron scheduler to run background tasks, daily backups, and queue workers. Includes cron syntax cheatsheet, edit / delete flows, and pitfalls.

Most web apps eventually grow a few "things that need to run on a schedule" — a daily summary email, a cleanup of expired sessions, a weekly invoice generator. Doing this on a managed PaaS shouldn't require setting up a separate worker fleet. Launchverse's project-scoped cron scheduler runs commands directly inside your application's container at any cron schedule you specify.

Where to find it

Two places:

  1. Project → Overview has a Cron Jobs section that shows everything scheduled for that single project.
  2. Dashboard → Cron Jobs shows everything across every project on your team — useful for quick audits.

Both views are powered by the same data; edits and deletes propagate across the engine.

Schedule a job

In either view click "Schedule job" and fill in:

  • Name — for your own reference; the engine doesn't care.
  • Cron expression — standard 5-field cron syntax. 0 0 * * * runs daily at midnight UTC. */15 * * * * runs every 15 minutes.
  • Command — runs from the application's working directory inside the container. Anything on PATH or runnable via node, php, python, etc. is fair game.

Click Save. The job is scheduled on the engine within a second; the next time the cron expression matches, your command runs.

Cron syntax cheatsheet

* * * * *
| | | | |
| | | | +----- day of week (0 - 6, Sunday = 0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- minute (0 - 59)

Common patterns:

  • 0 0 * * * — every day at midnight
  • 0 9 * * 1-5 — every weekday at 09:00
  • */30 * * * * — every 30 minutes
  • 0 */6 * * * — every 6 hours
  • 0 4 * * 0 — every Sunday at 04:00 (good for weekly backups)

Editing a job

You can change the name, cron expression, or command on any existing job — click the pencil icon, edit, save. The change propagates to the engine immediately; the next match of the new schedule is when it takes effect.

You cannot move a job between projects: cron tasks are bound to the application container. If you need to move one, delete it from the old project and create it on the new one.

Pitfalls

  • Time zone. The scheduler uses UTC. If you're in Lagos (UTC+1), 0 0 * * * fires at 01:00 your time, not midnight. Compensate in the cron expression.
  • Long-running commands. Cron tasks share resources with the application container. A 4-hour data export job will compete with your live web traffic. For heavy work, run it on a separate "worker" project.
  • Output. Cron tasks log to the application's log stream. If a job is silently failing, check the Logs tab — you'll see the timestamped output there.
  • No retries. If a cron task fails, Launchverse does not retry it. Build retry logic into your script if you need it (e.g. wget --tries=5 ... || sentry-cli send-event).

Doing it from code

You don't need to use cron for everything. Many web frameworks have built-in scheduler libraries (Laravel's task scheduler, Django's django-cron, Node's node-cron) that you can run inside your application process. Use those if you want git-versioned schedules; use Launchverse cron if you want platform-managed schedules that survive deploys.

Further reading


Ready to deploy?

Start free in Naira — no card required, no FX surprises.

Have feedback or a topic to suggest? Talk to us.