MailerTask
extends Task
in package
uses
MailerAwareTrait
A convenience task ready to use for asynchronously sending reusable emails via Mailer classes.
Especially useful is the fact that sending is auto-retried as per your config. Will not drop the email if successfully sent, you can decide to even retry manually again afterwards.
Tags
Table of Contents
Properties
- $costs : int
- Activate this if you want cost management per server to avoid server overloading.
- $QueuedJobs : QueuedJobsTable
- $queueModelClass : string
- $rate : int
- Rate limiting per worker in seconds.
- $retries : int|null
- Number of times a failed instance of this task should be restarted before giving up.
- $timeout : int|null
- Timeout in seconds, after which the Task is reassigned to a new worker if not finished successfully.
- $unique : bool
- Set to true if you want to make sure this specific task is never run in parallel, neither on the same server, nor any other server. Any worker running will not fetch this task, if any job here is already in progress.
- $io : Io
- $logger : LoggerInterface|null
- $mailer : Mailer
Methods
- __construct() : mixed
- run() : void
- Main execution of the task.
- taskName() : string
Properties
$costs
Activate this if you want cost management per server to avoid server overloading.
public
int
$costs
= 0
Expensive tasks (CPU, memory, ...) can have 1...100 points here, with higher points preventing a similar cost intensive task to be fetched on the same server in parallel. Smaller ones can easily still be processed on the same server if some an expensive one is running.
$QueuedJobs
public
QueuedJobsTable
$QueuedJobs
$queueModelClass
public
string
$queueModelClass
= 'Queue.QueuedJobs'
$rate
Rate limiting per worker in seconds.
public
int
$rate
= 0
Activate this if you want to stretch the processing of a specific task per worker.
$retries
Number of times a failed instance of this task should be restarted before giving up.
public
int|null
$retries
= null
Defaults to Config::defaultworkerretries().
$timeout
Timeout in seconds, after which the Task is reassigned to a new worker if not finished successfully.
public
int|null
$timeout
= 60
This should be high enough that it cannot still be running on a zombie worker (>> 2x). Defaults to Config::defaultworkertimeout().
$unique
Set to true if you want to make sure this specific task is never run in parallel, neither on the same server, nor any other server. Any worker running will not fetch this task, if any job here is already in progress.
public
bool
$unique
= false
$io
protected
Io
$io
$logger
protected
LoggerInterface|null
$logger
= null
$mailer
protected
Mailer
$mailer
Methods
__construct()
public
__construct([Io|null $io = null ][, LoggerInterface|null $logger = null ]) : mixed
Parameters
- $io : Io|null = null
-
IO
- $logger : LoggerInterface|null = null
run()
Main execution of the task.
public
run(array<string, mixed> $data, int $jobId) : void
Parameters
- $data : array<string, mixed>
-
The array passed to QueuedJobsTable::createJob()
- $jobId : int
-
The id of the QueuedJob entity
Tags
taskName()
public
static taskName() : string