Issues (20)

app/Jobs/SendMailJob.php (1 issue)

Severity
1
<?php
2
3
namespace App\Jobs;
4
5
use App\Mail\SendMail;
6
use Illuminate\Contracts\Queue\ShouldQueue;
7
use Illuminate\Queue\InteractsWithQueue;
8
use Illuminate\Queue\SerializesModels;
9
use Illuminate\Support\Facades\Mail;
10
use Illuminate\Support\Facades\Redis;
11
12
/**
13
 * Class SendMailJob
14
 *
15
 * @package App\Jobs
16
 */
17
class SendMailJob extends Job implements ShouldQueue
18
{
19
    use InteractsWithQueue, SerializesModels;
0 ignored issues
show
The trait Illuminate\Queue\SerializesModels requires some properties which are not provided by App\Jobs\SendMailJob: $id, $relations, $class, $keyBy
Loading history...
20
21
    /** @var int */
22
    public $tries = 3;
23
24
    /** @var SendMail|null */
25
    protected $sendMail = null;
26
27
    /**
28
     * SendMailJob constructor.
29
     *
30
     * @param  SendMail  $sendMail
31
     */
32
    public function __construct(SendMail $sendMail)
33
    {
34
        $this->sendMail = $sendMail;
35
36
        $this->onQueue('emails');
37
    }
38
39
    /**
40
     * Execute the job.
41
     */
42
    public function handle()
43
    {
44
        Redis::throttle('key')->block(0)->allow(1)->every(1)->then(function () {
45
            Mail::send($this->sendMail);
46
        }, function () {
47
            $this->release(5);
48
        });
49
    }
50
}
51