| @@ 78-95 (lines=18) @@ | ||
| 75 | * @param ScheduleInterface $schedule |
|
| 76 | * @return \DateTime|null |
|
| 77 | */ |
|
| 78 | private function checkNextRunDate(ScheduleInterface $schedule) |
|
| 79 | { |
|
| 80 | /** @var QueuedTaskRepository $queueRepo */ |
|
| 81 | $queueRepo = $this->doctrine->getManager() |
|
| 82 | ->getRepository('GloobyTaskBundle:QueuedTask'); |
|
| 83 | ||
| 84 | $executeAt = null; |
|
| 85 | $expression = $schedule->parseExpression(); |
|
| 86 | $nextExecuteAt = $expression->getNextRunDate(); |
|
| 87 | ||
| 88 | try { |
|
| 89 | $queueRepo->getByNameAndExecuteAt($schedule->getName(), $nextExecuteAt); |
|
| 90 | } catch (NoResultException $e) { |
|
| 91 | $executeAt = $nextExecuteAt; |
|
| 92 | } |
|
| 93 | ||
| 94 | return $executeAt; |
|
| 95 | } |
|
| 96 | ||
| 97 | /** |
|
| 98 | * @param ScheduleInterface $schedule |
|
| @@ 101-119 (lines=19) @@ | ||
| 98 | * @param ScheduleInterface $schedule |
|
| 99 | * @return \DateTime|null |
|
| 100 | */ |
|
| 101 | private function checkPreviousRunDate(ScheduleInterface $schedule) |
|
| 102 | { |
|
| 103 | /** @var QueuedTaskRepository $queueRepo */ |
|
| 104 | $queueRepo = $this->doctrine->getManager() |
|
| 105 | ->getRepository('GloobyTaskBundle:QueuedTask'); |
|
| 106 | ||
| 107 | $expression = $schedule->parseExpression(); |
|
| 108 | ||
| 109 | $executeAt = null; |
|
| 110 | ||
| 111 | try { |
|
| 112 | $queueRepo->getByNameAndExecuteAtBeforeNow($schedule->getName()); |
|
| 113 | return $executeAt; |
|
| 114 | } catch (NoResultException $e) { |
|
| 115 | $executeAt = $expression->getPreviousRunDate(); |
|
| 116 | } |
|
| 117 | ||
| 118 | return $executeAt; |
|
| 119 | } |
|
| 120 | } |
|
| 121 | ||