provider->getCalendars(new \DateTimeImmutable('now')) as $calendar) { $smses = $this->messageForCalendarBuilder->buildMessageForCalendar($calendar); foreach ($smses as $sms) { $this->messageBus->dispatch($sms); ++$countSms; } $this->em ->createQuery('UPDATE '.Calendar::class.' c SET c.smsStatus = :smsStatus WHERE c.id = :id') ->setParameters(['smsStatus' => Calendar::SMS_SENT, 'id' => $calendar->getId()]) ->execute(); ++$countCalendars; $this->em->refresh($calendar); } $this->logger->info(self::class.'a bulk of messages was sent', ['count_calendars' => $countCalendars, 'count_sms' => $countSms]); } }