getOptions(); $argumentList = $params->getArgumentList(); $jobName = $options['job'] ?? null; $targetId = $options['targetId'] ?? null; $targetType = $options['targetType'] ?? null; if (!$jobName && count($argumentList)) { $jobName = $argumentList[0]; } if (!$jobName) { $io->writeLine(""); $io->writeLine("A job name must be specified:"); $io->writeLine(""); $io->writeLine(" bin/command run-job [JobName]"); $io->writeLine(""); $io->writeLine("To print all available jobs, run:"); $io->writeLine(""); $io->writeLine(" bin/command app-info --jobs"); $io->writeLine(""); return; } $jobName = ucfirst(Util::hyphenToCamelCase($jobName)); $entityManager = $this->entityManager; $job = $entityManager->createEntity(Job::ENTITY_TYPE, [ 'name' => $jobName, 'job' => $jobName, 'targetType' => $targetType, 'targetId' => $targetId, 'attempts' => 0, 'status' => Status::READY, ]); try { $this->jobManager->runJob($job); } catch (Throwable $e) { $message = "Error: Job '{$jobName}' failed to execute."; if ($e->getMessage()) { $message .= ' ' . $e->getMessage(); } $io->writeLine($message); $io->setExitStatus(1); return; } $io->writeLine("Job '{$jobName}' has been executed."); } }