Passed
Push — master ( f1a782...17ae54 )
by Ion
04:19 queued 45s
created

SendMailJob::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 2
c 1
b 0
f 1
nc 1
nop 1
dl 0
loc 5
rs 10
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
introduced by
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