File tree Expand file tree Collapse file tree 2 files changed +20
-5
lines changed Expand file tree Collapse file tree 2 files changed +20
-5
lines changed Original file line number Diff line number Diff line change @@ -129,19 +129,24 @@ public function findByTaskUuid($taskUuid)
129
129
/**
130
130
* {@inheritdoc}
131
131
*/
132
- public function findNextScheduled (\DateTime $ dateTime = null )
132
+ public function findNextScheduled (\DateTime $ dateTime = null , array $ skippedExecutions = [] )
133
133
{
134
- $ query = $ this ->createQueryBuilder ('e ' )
134
+ $ queryBuilder = $ this ->createQueryBuilder ('e ' )
135
135
->innerJoin ('e.task ' , 't ' )
136
136
->where ('e.status = :status ' )
137
137
->andWhere ('e.scheduleTime < :date ' )
138
138
->setParameter ('date ' , $ dateTime ?: new \DateTime ())
139
139
->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
+ }
142
147
143
148
try {
144
- return $ query ->getSingleResult ();
149
+ return $ queryBuilder -> getQuery () ->getSingleResult ();
145
150
} catch (NoResultException $ exception ) {
146
151
return null ;
147
152
}
Original file line number Diff line number Diff line change @@ -168,6 +168,16 @@ public function testFindScheduledFuture()
168
168
$ this ->assertNull ($ this ->taskExecutionRepository ->findNextScheduled ());
169
169
}
170
170
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
+
171
181
/**
172
182
* Save a new execution to database.
173
183
*
You can’t perform that action at this time.
0 commit comments