1 | <?php |
||
9 | abstract class StallableJobManager extends PriorityJobManager |
||
10 | { |
||
11 | protected $defaultMaxStalls; |
||
12 | |||
13 | abstract protected function stallableSave(StallableJob $job); |
||
14 | |||
15 | 43 | protected function prioritySave(Job $job) |
|
16 | { |
||
17 | 43 | if (!$job instanceof StallableJob) { |
|
18 | throw new \InvalidArgumentException('Job is not instanceof '.StallableJob::class); |
||
19 | } |
||
20 | |||
21 | 43 | if (!$job->getId()) { |
|
22 | 43 | if ($job instanceof StallableJob) { |
|
23 | 43 | $this->setStallableJobDefaults($job); |
|
24 | } |
||
25 | } |
||
26 | |||
27 | 43 | return $this->stallableSave($job); |
|
28 | } |
||
29 | |||
30 | /** |
||
31 | * @param StallableJob $job |
||
32 | * @param $retry true if retry |
||
33 | * |
||
34 | * @return bool true if retry |
||
35 | */ |
||
36 | abstract protected function stallableSaveHistory(StallableJob $job, $retry); |
||
37 | |||
38 | /** |
||
39 | * @return bool true if retry |
||
40 | * |
||
41 | * @param Job $job |
||
42 | */ |
||
43 | 8 | protected function retryableSaveHistory(RetryableJob $job, $retry) |
|
59 | |||
60 | /** |
||
61 | * @param StallableJob $job |
||
62 | * |
||
63 | * @return bool false if |
||
64 | */ |
||
65 | 2 | private function updateJobStalled(StallableJob $job) |
|
69 | |||
70 | 43 | protected function setStallableJobDefaults(StallableJob $job) |
|
76 | |||
77 | /** |
||
78 | * @return int|null |
||
79 | */ |
||
80 | 2 | public function getDefaultMaxStalls() |
|
84 | |||
85 | /** |
||
86 | * @param int|null $defaultMaxStalls |
||
87 | */ |
||
88 | 2 | public function setDefaultMaxStalls($defaultMaxStalls) |
|
92 | } |
||
93 |