The Dart SDK is currently in experimental status. If you would like to provide feedback, please reach out to us with your suggestions and comments on our Discord.
Dart - 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 'package:nitric_sdk/nitric.dart';
final analyze = Nitric.job("analyze").allow([JobPermission.submit]);
analyze.handler((ctx) async {
return ctx;
}, opts: JobResourceRequirements(cpus: 1, memory: 2048, 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: ./batches/*.dart
start: dart run $SERVICE_PATH
Parameters
- Name
handler
- Required
- Required
- Type
- JobHandler
- Description
The middleware service to use as the handler for Job requests.
- Name
opts
- Optional
- Optional
- Type
- JobResourceRequirements
- Description
- 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
import 'package:nitric_sdk/nitric.dart';
final analyze = Nitric.job("analyze").allow([JobPermission.submit]);
analyze.handler((ctx) async {
return ctx;
});
Create a job handler with custom resource requirements
import 'package:nitric_sdk/nitric.dart';
final analyze = Nitric.job("analyze").allow([JobPermission.submit]);
analyze.handler((ctx) async {
return ctx;
}, opts: JobResourceRequirements(cpus: 1, memory: 2048, gpus: 1));