diff --git a/Classes/Domain/Task/TaskCollectionFactory.php b/Classes/Domain/Task/TaskCollectionFactory.php index 246671c..615051c 100644 --- a/Classes/Domain/Task/TaskCollectionFactory.php +++ b/Classes/Domain/Task/TaskCollectionFactory.php @@ -5,12 +5,19 @@ use Cron\CronExpression; use Neos\Flow\Annotations as Flow; +use Neos\Flow\Log\Utility\LogEnvironment; +use Psr\Log\LoggerInterface; /** * @Flow\Scope("singleton") */ class TaskCollectionFactory { + /** + * @Flow\Inject + * @var LoggerInterface + */ + protected $systemLogger; /** * @Flow\InjectConfiguration(package="Flowpack.Task", path="tasks") @@ -32,6 +39,11 @@ public function buildTasksFromConfiguration(): TaskCollection $cronExpressionPattern = $taskConfiguration['cronExpression'] ?? ''; $cronExpression = $cronExpressionPattern !== '' ? new CronExpression($cronExpressionPattern) : null; + if (!class_exists($taskConfiguration['handlerClass'])) { + $this->systemLogger->info(sprintf('Taskhandler class not found - Task "%s" is ignored', $taskConfiguration['handlerClass']), LogEnvironment::fromMethodName(__METHOD__)); + continue; + } + $this->taskCollection->set($taskIdentifier, new Task( $taskIdentifier, $cronExpression,