Python - 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.

from nitric.resources import job
analyze = job("analyze")
@analyze(cpus=1, memory=2048, gpus=0)
def do_analyze(data):
# Run batch job
pass

Defining Batches

Batches are defined in different files to services and referenced in a project's nitric.yaml file. For example:

batch-services:
- match: ./batches/*.py
start: pipenv run dev $SERVICE_PATH

Parameters

  • Name
    cpus
    Optional
    Optional
    Type
    int
    Description

    The number of CPUs to allocate to the handler

  • Name
    gpus
    Optional
    Optional
    Type
    int
    Description

    The number of GPUs to allocate to the handler

  • Name
    memory
    Optional
    Optional
    Type
    int
    Description

    The amount of memory (MB) to allocate to the handler

Examples

Define a job handler

from nitric.resources import job
analyze = job("analyze")
@analyze()
def do_analyze(data):
# Run batch job
pass

Create a job handler with custom resource requirements

from nitric.resources import job
analyze = job("analyze")
@analyze(cpus=1, memory=2048, gpus=0)
def do_analyze(data):
# Run batch job
pass
Last updated on Nov 28, 2024