From 9e7a3c2767ca292ecd1b6a00e3ba81f630147440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lys=C3=BD?= Date: Thu, 11 Aug 2022 14:42:38 +0200 Subject: [PATCH] Add method for finding scheduled tasks [MAILPOET-4367] --- .../Sending/ScheduledTasksRepository.php | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php b/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php index b380c9f725..08b9f6bc9a 100644 --- a/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php +++ b/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php @@ -236,6 +236,27 @@ class ScheduledTasksRepository extends Repository { ->execute(); } + /** + * @return ScheduledTaskEntity[] + */ + public function findScheduledSendingTasks(int $limit): array { + $now = Carbon::createFromTimestamp($this->wp->currentTime('timestamp')); + return $this->doctrineRepository->createQueryBuilder('st') + ->select('st') + ->join('st.sendingQueue', 'sq') + ->where('st.deletedAt IS NULL') + ->andWhere('st.status = :status') + ->andWhere('st.scheduledAt <= :now') + ->andWhere('st.type = :type') + ->orderBy('st.updatedAt', 'ASC') + ->setMaxResults($limit) + ->setParameter('status', ScheduledTaskEntity::STATUS_SCHEDULED) + ->setParameter('now', $now) + ->setParameter('type', SendingQueue::TASK_TYPE) + ->getQuery() + ->getResult(); + } + protected function findByTypeAndStatus($type, $status, $limit = null, $future = false) { $queryBuilder = $this->doctrineRepository->createQueryBuilder('st') ->select('st')