entity_change_notifier-8.x-1.0/src/Plugin/QueueWorker/FailedItem.php

src/Plugin/QueueWorker/FailedItem.php
<?php

namespace Drupal\entity_change_notifier\Plugin\QueueWorker;

use Drupal\entity_change_notifier\Plugin\MessageDestination\NotifyException;

/**
 * A failed notification that must be retried later.
 *
 * This class must remain serialization-safe, across module upgrades. As well,
 * since it needs to be able to handle failed notifications for deleted
 * entities, it must not rely on Entity objects since they may no longer exist.
 *
 * We use this class instead of NotifyException so we don't serialize
 * backtraces and other large debugging information to the queue.
 */
class FailedItem {

  /**
   * The time at which no more retries should be made, as a unix timestamp.
   *
   * @var int
   */
  protected $expires;

  /**
   * The msg data that failed and needs to be resent.
   *
   * @var array
   */
  protected $data;

  /**
   * The entity id of the Destination Config which failed.
   *
   * @var string
   */
  protected $messageDestinationEntityId;

  /**
   * FailedItem constructor.
   *
   * @param string $destination_entity_id
   *   The id of the entity for which notification is being sent.
   * @param array $data
   *   The message data.
   * @param int $expires
   *   The time at which no more retries should be made, as a unix timestamp.
   */
  public function __construct($destination_entity_id, array $data, $expires) {
    $this->messageDestinationEntityId = $destination_entity_id;
    $this->data = $data;
    $this->expires = $expires;
  }

  /**
   * Create a FailedItem from a NotifyException.
   *
   * @param \Drupal\entity_change_notifier\Plugin\MessageDestination\NotifyException $exception
   *   The NotifyException to use to create FailedItem.
   * @param int $expires
   *   When retry queue item will expire.
   *
   * @return \Drupal\entity_change_notifier\Plugin\QueueWorker\FailedItem
   *   A FailedItem created from the NotifyException
   */
  public static function fromNotifyException(NotifyException $exception, $expires) {
    return new static(
      $exception->getDestinationEntityId(),
      $exception->getData(),
      $expires
    );
  }

  /**
   * Get the expires attribute.
   *
   * @return int
   *   Expires attribute.
   */
  public function getExpires() {
    return $this->expires;
  }

  /**
   * Get Message Data.
   *
   * @return array
   *   Array of msg data.
   */
  public function getData() {
    return $this->data;
  }

  /**
   * Get the Destination Config Entity Id.
   *
   * @return string
   *   The id of the Destination config entity.
   */
  public function getMessageDestinationEntityId() {
    return $this->messageDestinationEntityId;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc