1 | <?php |
||
8 | class Funneled |
||
9 | { |
||
10 | /** @var bool|\Closure */ |
||
11 | protected $enabled = true; |
||
12 | |||
13 | /** @var string */ |
||
14 | protected $connectionName = ''; |
||
15 | |||
16 | /** @var string */ |
||
17 | protected $key; |
||
18 | |||
19 | /** @var int */ |
||
20 | protected $allowedNumberOfJobs = 1; |
||
21 | |||
22 | /** @var int */ |
||
23 | protected $releaseInSeconds = 5; |
||
24 | |||
25 | /** @var array */ |
||
26 | protected $releaseRandomSeconds = null; |
||
27 | |||
28 | public function __construct() |
||
34 | |||
35 | /** |
||
36 | * @param bool|\Closure $enabled |
||
37 | * |
||
38 | * @return $this |
||
39 | */ |
||
40 | public function enabled($enabled = true) |
||
46 | |||
47 | public function connectionName(string $connectionName) |
||
53 | |||
54 | public function key(string $key) |
||
60 | |||
61 | public function allow(int $allowedNumberOfJobs) |
||
67 | |||
68 | public function releaseAfterOneSecond() |
||
72 | |||
73 | public function releaseAfterSeconds(int $releaseInSeconds) |
||
79 | |||
80 | public function releaseAfterOneMinute() |
||
84 | |||
85 | public function releaseAfterMinutes(int $releaseInMinutes) |
||
89 | |||
90 | public function releaseAfterRandomSeconds(int $min = 1, int $max = 10) |
||
96 | |||
97 | protected function releaseDuration() :int |
||
105 | |||
106 | public function handle($job, $next) |
||
125 | } |
||
126 |