136 - Refactoring for Robustness

This commit is contained in:
Adam Wathan
2017-08-22 15:24:42 -04:00
parent d27fb532d0
commit f0823c77e3
2 changed files with 13 additions and 4 deletions

View File

@@ -13,8 +13,15 @@ class AttendeeMessage extends Model
return $this->belongsTo(Concert::class); return $this->belongsTo(Concert::class);
} }
public function recipients() public function orders()
{ {
return $this->concert->orders()->pluck('email'); return $this->concert->orders();
}
public function withChunkedRecipients($chunkSize, $callback)
{
$this->orders()->chunk($chunkSize, function ($orders) use ($callback) {
$callback($orders->pluck('email'));
});
} }
} }

View File

@@ -33,8 +33,10 @@ class SendAttendeeMessage implements ShouldQueue
*/ */
public function handle() public function handle()
{ {
$this->attendeeMessage->recipients()->each(function ($recipient) { $this->attendeeMessage->withChunkedRecipients(20, function ($recipients) {
Mail::to($recipient)->send(new AttendeeMessageEmail($this->attendeeMessage)); $recipients->each(function ($recipient) {
Mail::to($recipient)->queue(new AttendeeMessageEmail($this->attendeeMessage));
});
}); });
} }
} }