#124: Made the queue settings configurable through the .env file
This commit is contained in:
parent
4905dd1caa
commit
461517dd55
@ -10,11 +10,9 @@ use Illuminate\Mail\Message;
|
||||
|
||||
class SendEmailsCommand extends Command
|
||||
{
|
||||
const MAX_EMAILS_PER_BATCH = 100;
|
||||
|
||||
const MAX_NUMBER_ATTEMPTS = 5;
|
||||
|
||||
const SECONDS_TO_SLEEP = 30;
|
||||
private $maxPerBatch;
|
||||
private $numberOfAttempts;
|
||||
private $secondsBetweenPolls;
|
||||
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
@ -38,6 +36,10 @@ class SendEmailsCommand extends Command
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->maxPerBatch = config('mail.queue.emails_per_batch');
|
||||
$this->numberOfAttempts = config('mail.queue.max_attempts');
|
||||
$this->secondsBetweenPolls = config('mail.queue.seconds_between_polls');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -62,8 +64,8 @@ class SendEmailsCommand extends Command
|
||||
{
|
||||
$emailsToSend = EmailLog::where([
|
||||
['sent_at', null],
|
||||
['number_attempts', '<', self::MAX_NUMBER_ATTEMPTS]
|
||||
])->limit(self::MAX_EMAILS_PER_BATCH)->get();
|
||||
['number_attempts', '<', $this->numberOfAttempts]
|
||||
])->limit($this->maxPerBatch)->get();
|
||||
|
||||
$this->output->writeln(sprintf(
|
||||
'%d e-mail%s to send',
|
||||
@ -82,7 +84,7 @@ class SendEmailsCommand extends Command
|
||||
exit();
|
||||
}
|
||||
|
||||
sleep(self::SECONDS_TO_SLEEP);
|
||||
sleep($this->secondsBetweenPolls);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -134,4 +134,10 @@ return [
|
||||
resource_path('views/vendor/mail'),
|
||||
],
|
||||
],
|
||||
|
||||
'queue' => [
|
||||
'emails_per_batch' => env('QUEUE_EMAILS_PER_BATCH', 100),
|
||||
'seconds_between_polls' => env('QUEUE_SECONDS_PER_POLL', 30),
|
||||
'max_attempts' => env('QUEUE_MAX_ATTEMPTS', 5)
|
||||
]
|
||||
];
|
||||
|
Loading…
Reference in New Issue
Block a user