Расширение возможностей Generic Execution Engine
Расширение через события (Events)
В настоящее время для расширения возможностей универсального механизма выполнения можно использовать следующее событие:
Pimcore\Bundle\GenericExecutionEngineBundle\Event\JobRunStateChangedEvent
Это событие позволяет реагировать на изменения состояния выполнения задания (job run). Оно отправляется каждый раз, когда статус выполнения меняется. Объект события содержит идентификатор запуска задания (job run ID), предыдущее состояние и новое состояние.
Пример
В следующем примере показано, как уведомить пользователя по электронной почте, если выполнение задания завершилось неудачей.
<?php
namespace AppBundle\EventListener;
use Pimcore\Bundle\GenericExecutionEngineBundle\Event\JobRunStateChangedEvent;
use Pimcore\Mail;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class SendEmailOnFailedState implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
JobRunStateChangedEvent::class => 'onFailedState',
];
}
public function onFailedState(JobRunStateChangedEvent $event)
{
$state = $event->getNewState();
if ($state !== 'failed') {
return;
}
// Уведомление пользователя о сбое задания
$mail = new Mail();
$mail->addTo('user@lorem.com', 'User');
$mail->setSubject('Job Run ' .$event->getJobRunId() . ' failed');
$mail->setBody('The job run ' . $event->getJobRunId() . ' failed. Please check the job run log for more information.');
$mail->send();
}
}
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.