processor = $processor; $this->queue = $queue; $this->entityManager = $entityManager; $this->log = $log; } public function run(): void { $pendingMassEmailList = $this->entityManager ->getRDBRepository('MassEmail') ->where([ 'status' => 'Pending', 'startAt<=' => date('Y-m-d H:i:s'), ]) ->find(); foreach ($pendingMassEmailList as $massEmail) { try { $this->queue->create($massEmail); } catch (Throwable $e) { $this->log->error( 'Job ProcessMassEmail#createQueue ' . $massEmail->getId() . ': [' . $e->getCode() . '] ' . $e->getMessage() ); } } $massEmailList = $this->entityManager ->getRDBRepository('MassEmail') ->where([ 'status' => 'In Process', ]) ->find(); foreach ($massEmailList as $massEmail) { try { $this->processor->process($massEmail); } catch (Throwable $e) { $this->log->error( 'Job ProcessMassEmail#processSending '. $massEmail->getId() . ': [' . $e->getCode() . '] ' . $e->getMessage() ); } } } }