| | |
| | | use WP_Error; |
| | | use WP_REST_Response; |
| | | use WP_REST_Request; |
| | | use wpdb; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; // Exit if accessed directly |
| | |
| | | protected string $table = BASE.'_operation_queue'; |
| | | protected string $metricsTable = BASE.'stats__operation_queue'; |
| | | protected int $max_attempts = 3; |
| | | protected \wpdb $wpdb; |
| | | protected wpdb $wpdb; |
| | | |
| | | // System load thresholds |
| | | protected array $load_thresholds = [ |
| | |
| | | { |
| | | global $wpdb; |
| | | $this->wpdb = $wpdb; |
| | | $this->cache = Cache::for('queue', DAY_IN_SECONDS)->connect('user')->user(); |
| | | $this->cache = Cache::for('queue', 'user',DAY_IN_SECONDS)->user(); |
| | | add_action('jvb_process_queue', [ $this, 'checkQueue' ]); |
| | | add_action('jvb_queue_maintenance', [$this, 'hourlyMaintenance']); |
| | | add_action('jvbEmailDailyMetricsReport', [$this, 'emailDailyMetricsReport']); |
| | |
| | | ]; |
| | | |
| | | } catch (Exception $e) { |
| | | JVB()->error()->log('queue', $e->getMessage(), $data, 'high'); |
| | | Errors::getInstance()->log('queue', $e->getMessage(), $data, 'high'); |
| | | return new WP_Error('queue_failed', $e->getMessage()); |
| | | } |
| | | } |
| | |
| | | ); |
| | | |
| | | // Log this as a critical error |
| | | JVB()->error()->log( |
| | | Errors::getInstance()->log( |
| | | '[OperationQueue]:restartStuckOperations', |
| | | "Operation failed after maximum retries", |
| | | [ |
| | |
| | | ); |
| | | |
| | | // Log the backoff |
| | | JVB()->error()->log( |
| | | Errors::getInstance()->log( |
| | | '[OperationQueue]:restartStuckOperations', |
| | | "Operation requeued with exponential backoff", |
| | | [ |
| | |
| | | if (!is_array($filterResult) || !isset($filterResult['success'])) { |
| | | // Log invalid filter response and quit early |
| | | $invalid_response = is_object($filterResult) ? get_class($filterResult) : gettype($filterResult); |
| | | JVB()->error()->log( |
| | | Errors::getInstance()->log( |
| | | '[OperationQueue]:processOperation', |
| | | "Invalid filter response format - expected array with 'success' key", |
| | | [ |
| | |
| | | |
| | | } catch (Exception $e) { |
| | | // Handle exception... |
| | | JVB()->error()->log( |
| | | Errors::getInstance()->log( |
| | | '[OperationQueue]:processOperation', |
| | | "Exception during operation processing: " . $e->getMessage(), |
| | | [ |
| | |
| | | |
| | | return $value; |
| | | } catch (Exception $e) { |
| | | JVB()->error()->log( |
| | | Errors::getInstance()->log( |
| | | '[OperationQueue]:getOperationValue', |
| | | 'Error retrieving operation value: ' . $e->getMessage(), |
| | | [ |