File "class-cache-preload-background.php"

Full Path: /home/theinspectionboy/public_html/suffolk/includes-20250622113618/class-cache-preload-background.php
File size: 1.78 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * Classes for Background and Async processing.
 *
 * This file contains classes and methods that extend \SWIS\Background_Process and
 * \SWIS\Async_Request to allow parallel and background processing of images.
 *
 * @link https://ewww.io
 * @package EWWW_Image_Optimizer
 */

namespace SWIS;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * The (grand)parent \SWIS\Async_Request class file.
 */
require_once( SWIS_PLUGIN_PATH . 'vendor/wp-async-request.php' );

/**
 * The parent \SWIS\Background_Process class file.
 */
require_once( SWIS_PLUGIN_PATH . 'includes/class-background-process.php' );

/**
 * Processes cache preloading in background/async mode.
 *
 * @see Background_Process
 */
class Cache_Preload_Background extends Background_Process {

	/**
	 * The action name used to trigger this class extension.
	 *
	 * @access protected
	 * @var string $action
	 */
	protected $action = 'cache_preload';

	/**
	 * The queue name for this class extension.
	 *
	 * @access protected
	 * @var string $action
	 */
	protected $active_queue = 'swis_cache_preload';

	/**
	 * Runs task for an item from the preloader queue.
	 *
	 * @access protected
	 *
	 * @param array $item The id of the post/page.
	 * @return bool|array If the item is not complete, return it. False indicates completion.
	 */
	protected function task( $item ) {
		session_write_close();

		$url = $item['page_url'];
		swis()->settings->debug_message( "background preloading $url" );

		swis()->cache_preload->preload( $url );

		return false;
	}

	/**
	 * Runs failure routine for cache preload (maybe not).
	 *
	 * @access protected
	 *
	 * @param array $item The id of the page and how many attempts have been made.
	 */
	protected function failure( $item ) {
		// TODO: not sure we will even bother detecting failures...
		return;
	}
}