contacts_events-8.x-1.x-dev/commerce_advancedqueue/src/Plugin/AdvancedQueue/Backend/CommerceOrderJobBackendInterface.php
commerce_advancedqueue/src/Plugin/AdvancedQueue/Backend/CommerceOrderJobBackendInterface.php
<?php namespace Drupal\commerce_advancedqueue\Plugin\AdvancedQueue\Backend; use Drupal\advancedqueue\Job; use Drupal\advancedqueue\Plugin\AdvancedQueue\Backend\BackendInterface; use Drupal\commerce_advancedqueue\CommerceOrderJob; /** * An interface for queues that support CommerceOrderJob jobs. * * Implementations provides additional means to manage jobs for a particular * order and must protect against multiple jobs being processed concurrently for * the same order. */ interface CommerceOrderJobBackendInterface extends BackendInterface { /** * Gets an estimated number of jobs for an order in the queue. * * The accuracy of this number might vary. * On a busy system with a large number of consumers and jobs, the result * might only be valid for a fraction of a second and not provide an * accurate representation. * * @param int $order_id * The order ID. * * @return array * The estimated number of jobs, grouped per job status. * Only the estimate for the 'queued' status is guaranteed to be present, * other estimates (processing/success/failed) depend on backend * capabilities and configuration. * * @see \Drupal\advancedqueue\Plugin\AdvancedQueue\Backend\BackendInterface::countJobs() */ public function countJobsForOrder(int $order_id): array; /** * Claims the next available job for an order for processing. * * @param int $order_id * The order ID. * * @return \Drupal\commerce_advancedqueue\CommerceOrderJob|null * The job, or NULL if none available. * * @see \Drupal\advancedqueue\Plugin\AdvancedQueue\Backend\BackendInterface::claimJob() */ public function claimJobForOrder($order_id): ?CommerceOrderJob; /** * {@inheritdoc} * * @throws \InvalidArgumentException * Thrown if $job is not a \Drupal\commerce_advancedqueue\CommerceOrderJob. */ public function enqueueJob(Job $job, $delay = 0); /** * {@inheritdoc} * * @throws \InvalidArgumentException * Thrown if any of $jobs are not a * \Drupal\commerce_advancedqueue\CommerceOrderJob. */ public function enqueueJobs(array $jobs, $delay = 0); /** * {@inheritdoc} * * @throws \InvalidArgumentException * Thrown if $job is not a \Drupal\commerce_advancedqueue\CommerceOrderJob. */ public function retryJob(Job $job, $delay = 0); /** * {@inheritdoc} * * @return \Drupal\commerce_advancedqueue\CommerceOrderJob|null * The job, or NULL if none available. */ public function claimJob(): ?CommerceOrderJob; /** * {@inheritdoc} * * @throws \InvalidArgumentException * Thrown if $job is not a \Drupal\commerce_advancedqueue\CommerceOrderJob. */ public function onSuccess(Job $job); /** * {@inheritdoc} * * @throws \InvalidArgumentException * Thrown if $job is not a \Drupal\commerce_advancedqueue\CommerceOrderJob. */ public function onFailure(Job $job); }