Inquir Compute
Inquir Compute · cron

Serverless cron jobs on VPS without raw crontab

Move cron jobs off raw VPS crontab onto serverless scheduled pipelines with run history, retries, isolated containers, and the same secrets and logging model as your HTTP functions.

Problems with cron jobs on VPS

  • Raw crontab: little structured run history, logs pieced together over SSH, and one shared environment across jobs.
  • systemd timers: better start reliability, but packaging, log conventions, and secret distribution stay DIY.
  • Inquir scheduled pipelines: serverless cron jobs with isolated runs, retries, execution history, and shared primitives with HTTP handlers.

Running cron jobs on a VPS is fine until nobody can say which interpreter ran last Tuesday or why output vanished after a syslog rotation. Moving recurring work off the box into a serverless execution model for scheduled jobs gives you versioned deploys and a product-native audit trail instead of grep across sessions.

Crontab is seductive until nobody remembers which environment ran the script, which version ran last Tuesday, or why the job stopped mailing output when syslog rotated.

When every job shares one UNIX user and one Python environment, a harmless report script can accidentally step on the dependencies of a finance export.

Why crontab and systemd timers break down

Timers help with reliability but you still carry packaging, logging conventions, and secret distribution yourself.

Kubernetes CronJob is powerful yet heavy if the rest of your stack does not already live there.

How serverless cron jobs work in Inquir

This is not “just another scheduler UI”—each run is a managed serverless function in an isolated container, triggered by pipeline cron rules, with the same routing, secrets, and observability primitives as synchronous HTTP handlers.

When you save a pipeline, the service validates the cron string so typos fail early instead of silently never firing. The scheduler remembers the next run time per pipeline and wakes it when due, so edits to the expression reschedule cleanly.

Because the worker wakes on a fixed interval, think in terms of minute-level jobs for predictable behavior; expressions finer than that may not fire as sharply as a kernel timer would.

Benefits of managed cron pipelines

Isolated runs per scheduled job

Containers keep dependency conflicts and file system effects contained.

Same secrets and logging as HTTP

Use the same secrets and logging model as HTTP handlers—no parallel DIY stack on the VPS.

Composable pipelines after cron

Chain follow-up work when a cron task should fan out or hand off to longer async flows.

How to migrate cron jobs from VPS to Inquir

Treat each former crontab line as a serverless handler plus a schedule trigger so runs leave the VPS shell and land in execution history next to the rest of your platform.

1

Implement handler

Write the job logic with explicit inputs from environment variables.

2

Create schedule trigger

Set pipeline trigger type to schedule and paste a cron expression the API accepts.

3

Monitor

Confirm durations and failure rates before they become silent data gaps.

Example: nightly aggregation

Read a watermark from env, query a source system, write results downstream.

jobs/nightly.mjs
export async function handler(event) {
  // From a scheduled pipeline, event includes pipeline, step, payload, previousOutput, etc.
  const since = process.env.LAST_SYNC_CURSOR;
  const batch = await fetchBatch({ since });
  await storeSummary(batch);
  return { processed: batch.length };
}

When this helps

When this works

  • You outgrew one-off crontab on a VPS and want serverless cron jobs with versioned deploys, isolation, and history next to your HTTP functions.
  • You want parity between “API work” and “scheduled work” in one product surface.

When to skip it

  • You need sub-second global scheduling across many regions (edge-specific designs differ).

FAQ

Is this the same as Linux crontab?

No—it's application-level scheduling through Inquir pipelines. The platform decides when your function runs in a container; you configure cron expressions and inspect runs in the product UI.

How do I debug a misfire?

Open the invocation history for the function that backs the pipeline step. You see the payload, logs, and timing for the run that actually executed—far easier than correlating syslog timestamps across SSH sessions.

Can jobs call HTTP routes on the same platform?

Yes. Jobs can invoke gateway endpoints or other internal functions when that keeps boundaries clean.

Inquir Compute

The simplest way to run AI agents and backend jobs without infrastructure.

Contact info@inquir.org

© 2025 Inquir Compute. All rights reserved.