Jake Vanderwerf
2026-08-29 f859e64a57c624ff2daa2b21355f65a49fd4807d
inc/managers/queue/Queue.php
@@ -4,9 +4,12 @@
   exit;
}
use Exception;
use JVBase\Instance;
use JVBase\managers\AdminPages;
use JVBase\managers\Errors;
use JVBase\rest\routes\QueueRoutes;
use Throwable;
use WP_Error;
use WP_REST_Request;
use WP_REST_Response;
@@ -74,13 +77,15 @@
    * @param int $userId User ID
    * @param array $data Request data
    * @param array $options {
    *     @type string $priority     'low', 'normal', 'high'
    *     @type int $delay           Seconds to delay processing
    *     @type string $scheduled    Specific datetime to process
    *     @type array|string $depends_on  Operation IDs this depends on
    *     @type string|array $chunk_key   Key(s) to chunk (overrides registry)
    *     @type int $chunk_size      Chunk size (overrides registry)
    * @type string $priority 'low', 'normal', 'high'
    * @type int $delay Seconds to delay processing
    * @type string $scheduled Specific datetime to process
    * @type array|string $depends_on Operation IDs this depends on
    * @type string|array $chunk_key Key(s) to chunk (overrides registry)
    * @type int $chunk_size Chunk size (overrides registry)
    * }
    * @throws Throwable
    * @throws Throwable
    */
   public function add(string $type, int $userId, array $data, array $options = []): array|WP_Error
   {
@@ -103,7 +108,7 @@
            'updated_existing' => false,
         ];
      } catch (\Exception $e) {
      } catch (Exception $e) {
         Errors::getInstance()->log('queue', $e->getMessage(), $data, 'high');
         return new WP_Error('queue_failed', $e->getMessage());
      }
@@ -112,7 +117,7 @@
   /**
    * Try to merge incoming operation into an existing pending/scheduled one.
    * Returns result array if merged, null if not.
    * @throws \Throwable
    * @throws Throwable
    */
   private function tryMerge(Operation $incoming): ?array
   {
@@ -181,7 +186,7 @@
   public function maintenance(): void
   {
      $this->locker->withLock(function () {
         $this->storage->resetStuckOperations(30);
         $this->storage->resetStuckOperations();
      });
      $this->runQueueOnShutdown();
   }
@@ -204,7 +209,7 @@
   /**
    * Get a specific value from an operation - backwards compatibility
    */
   public function getOperationValue(string $id, string $column, bool $decodeJson = true): mixed
   public function getOperationValue(string $id, string $column, bool $decodeJson = true): static|string|int|array|null
   {
      $op = $this->get($id);
      if (!$op) {
@@ -444,11 +449,12 @@
         'infinity'
      );
   }
   /**
    * @param WP_REST_Response $response
    * @param WP_REST_Request $request
    * @param string $action
    *
    * @return bool|WP_REST_Response
    * @return WP_REST_Response|bool
    */
   public function adminActionFilter(WP_REST_Response $response, WP_REST_Request $request, string $action):WP_REST_Response|bool
   {