Documents / @faasjs/jobs
@faasjs/jobs
@faasjs/jobs
PostgreSQL-backed background jobs for FaasJS.
Jobs are persisted in PostgreSQL, executed with at-least-once delivery, and split between enqueueing, worker polling, and scheduler cron enqueueing. Handlers should be idempotent and use retry options to make failure behavior explicit.
Install
npm install @faasjs/jobs @faasjs/pg
Usage
import { defineJob, enqueueJob } from '@faasjs/jobs'
import { z } from '@faasjs/utils'
export default defineJob({
schema: z.object({
userId: z.string(),
}),
async handler({ params }) {
console.log(params.userId)
},
})
await enqueueJob('features/users/jobs/sync', { userId: 'u_123' })
await client.transaction(async (trx) => {
await updateBusinessState(trx)
await enqueueJob(
'features/users/jobs/sync',
{ userId: 'u_123' },
{
client: trx,
},
)
})