Node.js - job.handler()
Job handlers are the code that is run when a job request is submitted. These handlers should be written in a separate file to your services.
import { job, JobContext } from '@nitric/sdk'
const analyze = job('analyze')
analyze.handler(
async (ctx: JobContext) => {
// Do some work
return ctx
},
{ cpus: 1, memory: 1024, gpus: 0 }
)
Defining Batches
Batches are defined in different files to services and referenced in a project's nitric.yaml
file. For example:
batch-services:
- match: ./services/*.ts
start: yarn dev:services $SERVICE_PATH
Parameters
- Name
handler
- Required
- Required
- Type
- JobMiddleware or JobMiddleware[]
- Description
One or more middleware services to use as the handler which will run on the defined frequency.
- Name
opts
- Optional
- Optional
- Type
- JobResourceRequirements
- Description
- Name
cpus
- Optional
- Optional
- Type
- number
- Description
The number of CPUs to allocate to the handler
- Name
gpus
- Optional
- Optional
- Type
- number
- Description
The number of GPUs to allocate to the handler
- Name
memory
- Optional
- Optional
- Type
- number
- Description
The amount of memory (MB) to allocate to the handler
Examples
Define a job handler with default resource requirements
import { job, JobContext } from '@nitric/sdk'
const analyze = job('analyze')
analyze.handler(async (ctx: JobContext) => {
// Do some work
return ctx
})
Create a job handler with custom resource requirements
import { job, JobContext } from '@nitric/sdk'
const analyze = job('analyze')
analyze.handler(
async (ctx: JobContext) => {
// Do some work
return ctx
},
{ cpus: 1, memory: 2048, gpus: 0 }
)