Guides

Jobs

defineJob files under jobs/ run on a durable metadata-database queue.

Default-export defineJob from jobs/<name>.ts. The job name is the path after jobs/ without .ts. API and job handlers enqueue with ctx.jobs.enqueue({ name, payload?, runAt?, delayMs? }). The worker retries 5 times with backoff, then marks the run dead. Retry dead jobs from /projects/:id/jobs. Job context has db, email, env, push, jobs, and payload — no HTTP.

jobs/resize.ts

import { defineJob } from "@robodev-ai/sdk";
export default defineJob({
handler: async ({ payload }) => {
console.log("resize", payload);
},
});