1 | <?php |
||
9 | abstract class StallableJobManager extends PriorityJobManager |
||
10 | { |
||
11 | protected $defaultMaxStalls; |
||
12 | |||
13 | abstract protected function stallableSave(StallableJob $job); |
||
14 | |||
15 | abstract public function pruneStalledJobs($workerName = null, $method = null, callable $progressCallback = null); |
||
16 | |||
17 | abstract public function resetStalledJobs($workerName = null, $method = null, callable $progressCallback = null); |
||
18 | |||
19 | 4 | public static function getAllStatuses() |
|
27 | |||
28 | 43 | protected function prioritySave(Job $job) |
|
29 | { |
||
30 | 43 | if (!$job instanceof StallableJob) { |
|
31 | throw new \InvalidArgumentException('Job is not instanceof '.StallableJob::class); |
||
32 | } |
||
33 | |||
34 | 43 | if (!$job->getId()) { |
|
35 | 43 | if ($job instanceof StallableJob) { |
|
36 | 43 | $this->setStallableJobDefaults($job); |
|
37 | } |
||
38 | } |
||
39 | |||
40 | 43 | return $this->stallableSave($job); |
|
41 | } |
||
42 | |||
43 | /** |
||
44 | * @param StallableJob $job |
||
45 | * @param $retry true if retry |
||
46 | * |
||
47 | * @return bool true if retry |
||
48 | */ |
||
49 | abstract protected function stallableSaveHistory(StallableJob $job, $retry); |
||
50 | |||
51 | /** |
||
52 | * @return bool true if retry |
||
53 | * |
||
54 | * @param Job $job |
||
55 | */ |
||
56 | 8 | protected function retryableSaveHistory(RetryableJob $job, $retry) |
|
72 | |||
73 | /** |
||
74 | * @param StallableJob $job |
||
75 | * |
||
76 | * @return bool false if |
||
77 | */ |
||
78 | 2 | private function updateJobStalled(StallableJob $job) |
|
82 | |||
83 | 43 | protected function setStallableJobDefaults(StallableJob $job) |
|
84 | { |
||
85 | 43 | if (null === $job->getMaxStalls()) { |
|
86 | 43 | $job->setMaxStalls($this->defaultMaxStalls); |
|
87 | } |
||
88 | 43 | } |
|
89 | |||
90 | /** |
||
91 | * @return int|null |
||
92 | */ |
||
93 | 2 | public function getDefaultMaxStalls() |
|
97 | |||
98 | /** |
||
99 | * @param int|null $defaultMaxStalls |
||
100 | */ |
||
101 | 2 | public function setDefaultMaxStalls($defaultMaxStalls) |
|
105 | } |
||
106 |