Skip to content

Commit f4d5a16

Browse files
added skipped to execution-repository
1 parent 37f1ff2 commit f4d5a16

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

src/Entity/TaskExecutionRepository.php

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,19 +129,24 @@ public function findByTaskUuid($taskUuid)
129129
/**
130130
* {@inheritdoc}
131131
*/
132-
public function findNextScheduled(\DateTime $dateTime = null)
132+
public function findNextScheduled(\DateTime $dateTime = null, array $skippedExecutions = [])
133133
{
134-
$query = $this->createQueryBuilder('e')
134+
$queryBuilder = $this->createQueryBuilder('e')
135135
->innerJoin('e.task', 't')
136136
->where('e.status = :status')
137137
->andWhere('e.scheduleTime < :date')
138138
->setParameter('date', $dateTime ?: new \DateTime())
139139
->setParameter('status', TaskStatus::PLANNED)
140-
->setMaxResults(1)
141-
->getQuery();
140+
->setMaxResults(1);
141+
142+
$expr = $queryBuilder->expr();
143+
if (empty($skippedExecutions)) {
144+
$queryBuilder->andWhere($expr->not($expr->in('e.uuid', ':skipped')))
145+
->setParameter('skipped', $skippedExecutions);
146+
}
142147

143148
try {
144-
return $query->getSingleResult();
149+
return $queryBuilder->getQuery()->getSingleResult();
145150
} catch (NoResultException $exception) {
146151
return null;
147152
}

tests/Functional/Entity/TaskExecutionRepositoryTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,16 @@ public function testFindScheduledFuture()
168168
$this->assertNull($this->taskExecutionRepository->findNextScheduled());
169169
}
170170

171+
public function testFindScheduledSkipped()
172+
{
173+
$task = $this->createTask();
174+
$this->taskRepository->save($task);
175+
176+
$this->save($task, new \DateTime('+1 hour'));
177+
178+
$this->assertNull($this->taskExecutionRepository->findNextScheduled());
179+
}
180+
171181
/**
172182
* Save a new execution to database.
173183
*

0 commit comments

Comments
 (0)