process method
Process a job
Implementation
@override
Future<void> process(Job job) async {
if (!_isRunning) {
throw StateError('Worker not started. Call start() first.');
}
final completer = Completer<Map<String, dynamic>>();
_pendingJobs[job.id] = completer;
// Send job to isolate for processing with response port
_sendPort.send({
'type': 'job',
'data': job.toJson(),
'responsePort': _responsePort.sendPort,
});
// Wait for result
final result = await completer.future;
final processedJob = Job.fromJson(result);
job.status = processedJob.status;
job.error = processedJob.error;
}