1 | <?php |
||
12 | abstract class BaseRunManager extends RunManager |
||
13 | { |
||
14 | /** @var ObjectManager */ |
||
15 | protected $objectManager; |
||
16 | |||
17 | /** @var string|null */ |
||
18 | protected $runArchiveClass; |
||
19 | |||
20 | 4 | public function __construct(ObjectManager $objectManager, $runClass, $jobTimingClass, $recordTimings) |
|
21 | { |
||
22 | 4 | $this->objectManager = $objectManager; |
|
23 | 4 | parent::__construct($runClass, $jobTimingClass, $recordTimings); |
|
24 | 4 | } |
|
25 | |||
26 | /** |
||
27 | * @return ObjectManager |
||
28 | */ |
||
29 | 1 | public function getObjectManager() |
|
30 | { |
||
31 | 1 | return $this->objectManager; |
|
32 | } |
||
33 | |||
34 | /** |
||
35 | * @return ObjectRepository |
||
36 | */ |
||
37 | public function getRepository() |
||
41 | |||
42 | /** |
||
43 | * @return null|string |
||
44 | */ |
||
45 | 4 | public function getRunArchiveClass() |
|
49 | |||
50 | /** |
||
51 | * @param null|string $runArchiveClass |
||
52 | */ |
||
53 | 4 | public function setRunArchiveClass($runArchiveClass) |
|
57 | |||
58 | 1 | public function recordJobRun(Job $job) |
|
59 | { |
||
60 | 1 | parent::recordJobRun($job); |
|
61 | |||
62 | 1 | $finishedAt = $job->getFinishedAt(); |
|
63 | 1 | if (null === $finishedAt) { |
|
64 | $finishedAt = new \DateTime(); |
||
65 | } |
||
66 | /** @var JobTiming $jobTiming */ |
||
67 | 1 | $jobTiming = new $this->jobTimingClass(); |
|
68 | 1 | $jobTiming->setFinishedAt($finishedAt); |
|
69 | 1 | $this->objectManager->persist($jobTiming); |
|
70 | 1 | $this->objectManager->flush(); |
|
71 | 1 | } |
|
72 | |||
73 | public function pruneStalledRuns() |
||
92 | |||
93 | /** |
||
94 | * @param array $delete |
||
95 | * |
||
96 | * @return int |
||
97 | */ |
||
98 | protected function deleteOldRuns(array $delete) |
||
112 | |||
113 | protected function flush() |
||
114 | { |
||
115 | $this->getObjectManager()->flush(); |
||
116 | } |
||
117 | |||
118 | /** |
||
119 | * @return array |
||
120 | */ |
||
121 | abstract protected function getOldLiveRuns(); |
||
122 | |||
123 | abstract protected function removeOlderThan($objectName, $field, \DateTime $olderThan); |
||
124 | |||
125 | public function pruneArchivedRuns(\DateTime $olderThan) |
||
126 | { |
||
127 | return $this->removeOlderThan($this->getRunArchiveClass(), 'endedAt', $olderThan); |
||
128 | } |
||
129 | |||
130 | public function pruneJobTimings(\DateTime $olderThan) |
||
134 | } |
||
135 |