advancedqueue-8.x-1.x-dev/src/QueueAction/Retry.php

src/QueueAction/Retry.php
<?php

namespace Drupal\advancedqueue\QueueAction;

use Drupal\advancedqueue\Job;
use Drupal\advancedqueue\Plugin\AdvancedQueue\Backend\BackendInterface;
use Drupal\advancedqueue\Plugin\AdvancedQueue\Backend\SupportsLoadingJobsInterface;
use Drupal\Core\StringTranslation\PluralTranslatableMarkup;
use Drupal\Core\StringTranslation\TranslatableMarkup;

/**
 * Retry job queue action.
 */
final class Retry implements QueueActionInterface {

  /**
   * {@inheritdoc}
   */
  public function id(): string {
    return 'retry';
  }

  /**
   * {@inheritdoc}
   */
  public function label(): TranslatableMarkup {
    return new TranslatableMarkup('Retry');
  }

  /**
   * {@inheritdoc}
   */
  public function canExecute(BackendInterface $backend, string $job_state): bool {
    return $job_state === Job::STATE_FAILURE && $backend instanceof SupportsLoadingJobsInterface;
  }

  /**
   * {@inheritdoc}
   */
  public function execute(BackendInterface $backend, string $job_id): bool {
    if ($backend instanceof SupportsLoadingJobsInterface) {
      $job = $backend->loadJob($job_id);
      if ($job && $job->getState() === Job::STATE_FAILURE) {
        $backend->retryJob($job);
        return TRUE;
      }
    }
    return FALSE;
  }

  /**
   * {@inheritdoc}
   */
  public function confirmFormQuestion(int $count): PluralTranslatableMarkup {
    return new PluralTranslatableMarkup($count, 'Are you sure you want to retry this job?', 'Are you sure you want to retry these jobs?');
  }

  /**
   * {@inheritdoc}
   */
  public function processedMessage(int $count): PluralTranslatableMarkup {
    return new PluralTranslatableMarkup($count, 'Retried @count job', 'Retried @count jobs');
  }

}

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

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