setName('mautic:messages:send') ->setAliases( [ 'mautic:campaigns:messagequeue', 'mautic:campaigns:messages', ] ) ->addOption( '--channel', '-c', InputOption::VALUE_OPTIONAL, 'Channel to use for sending messages i.e. email, sms.', null ) ->addOption('--channel-id', '-i', InputOption::VALUE_REQUIRED, 'The ID of the message i.e. email ID, sms ID.') ->addOption('--message-id', '-m', InputOption::VALUE_REQUIRED, 'ID of a specific queued message'); parent::configure(); } protected function execute(InputInterface $input, OutputInterface $output): int { $processed = 0; $channel = $input->getOption('channel'); $channelId = $input->getOption('channel-id'); $messageId = $input->getOption('message-id'); $key = $channel.$channelId.$messageId; if (!$this->checkRunStatus($input, $output, $key)) { return \Symfony\Component\Console\Command\Command::SUCCESS; } $output->writeln(''.$this->translator->trans('mautic.campaign.command.process.messages').''); if ($messageId) { if ($message = $this->messageQueueModel->getEntity($messageId)) { $processed = intval($this->messageQueueModel->processMessageQueue($message)); } } else { $processed = intval($this->messageQueueModel->sendMessages($channel, $channelId)); } $output->writeln(''.$this->translator->trans('mautic.campaign.command.messages.sent', ['%events%' => $processed]).''."\n"); $this->completeRun(); return \Symfony\Component\Console\Command\Command::SUCCESS; } protected static $defaultDescription = 'Process sending of messages queue.'; }