SerializableJob mixin

Mixin for jobs that need to persist their constructor arguments.

Implement serialize to encode your job's data, and use a JobFactory in DatabaseQueueDriver.registerJobFactory to decode it.

class SendEmailJob extends Job with SerializableJob {
  final String to;
  SendEmailJob(this.to);

  @override
  String get name => 'SendEmailJob';

  @override
  String serialize() => jsonEncode({'to': to});

  @override
  Future<void> handle() async { ... }
}
Superclass constraints

Properties

attempts ↔ int
How many times this job has been attempted so far.
getter/setter pairinherited
availableAt ↔ DateTime?
When this job should next be processed (for delayed/retry scheduling).
getter/setter pairinherited
canRetry → bool
Returns true if this job can be retried.
no setterinherited
createdAt ↔ DateTime
When this job was first created.
latefinalinherited
currentRetryDelay → Duration
Calculates the delay for the current retry attempt using exponential backoff.
no setterinherited
finishedAt ↔ DateTime?
When this job finished processing (completed or permanently failed).
getter/setter pairinherited
hashCode → int
The hash code for this object.
no setterinherited
id ↔ String
A unique ID generated for each job instance.
latefinalinherited
isAvailable → bool
Returns true if this job is ready to be processed now.
no setterinherited
lastError ↔ Object?
The error from the last failed attempt, if any.
getter/setter pairinherited
lastStackTrace ↔ StackTrace?
The stack trace from the last failed attempt, if any.
getter/setter pairinherited
maxRetries → int
Maximum number of times this job can be retried after failure.
no setterinherited
name → String
The logical name of this job, used for logging and tracking.
no setterinherited
queue → String
The queue this job should be dispatched to. Defaults to 'default'.
no setterinherited
retryDelay → Duration
Base delay between retries. Actual delay increases exponentially.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
status ↔ JobStatus
The current status of this job.
getter/setter pairinherited
timeout → Duration?
Maximum time a single job execution is allowed to run.
no setterinherited

Methods

handle() → Future<void>
The work this job performs. Override in your subclass.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onFailure(Object error, StackTrace stackTrace) → Future<void>
Called when handle throws an exception. Override for custom error handling.
inherited
onPermanentFailure(Object error, StackTrace stackTrace) → Future<void>
Called after the job has exhausted all retries. Override for dead-letter logic.
inherited
serialize() → String
Serializes this job's data to a string (typically JSON).
toJson() → Map<String, dynamic>
Converts the job to a JSON-compatible map.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited