• Resolved qut1

    (@qut1)


    Hello I have this message on my site in “Site health” of my site. And indeed the pages do not update after publication of an article, even with the correct settings. Do you know how I can fix the problem?

    The scheduled event wp_fastest_cache_Preload, is late. Your site is still working, but this may be an indication that the article scheduling or automated updates may not work as expected.

    Thx ! ??

Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Author Emre Vona

    (@emrevona)

    can you be sure that WP_CRON works properly? can you publish a scheduled post please?

    Thread Starter qut1

    (@qut1)

    Hello @emrevona thx for your answer.

    I don’t use scheduled post.

    Here my wp-cron :

    
    <?php
    /**
     * A pseudo-CRON daemon for scheduling WordPress tasks
     *
     * WP Cron is triggered when the site receives a visit. In the scenario
     * where a site may not receive enough visits to execute scheduled tasks
     * in a timely manner, this file can be called directly or via a server
     * CRON daemon for X number of times.
     *
     * Defining DISABLE_WP_CRON as true and calling this file directly are
     * mutually exclusive and the latter does not rely on the former to work.
     *
     * The HTTP request to this file will not slow down the visitor who happens to
     * visit when the cron job is needed to run.
     *
     * @package WordPress
     */
    
    ignore_user_abort( true );
    
    /* Don't make the request block till we finish, if possible. */
    if ( function_exists( 'fastcgi_finish_request' ) && version_compare( phpversion(), '7.0.16', '>=' ) ) {
    	if ( ! headers_sent() ) {
    		header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' );
    		header( 'Cache-Control: no-cache, must-revalidate, max-age=0' );
    	}
    
    	fastcgi_finish_request();
    }
    
    if ( ! empty( $_POST ) || defined( 'DOING_AJAX' ) || defined( 'DOING_CRON' ) ) {
    	die();
    }
    
    /**
     * Tell WordPress we are doing the CRON task.
     *
     * @var bool
     */
    define( 'DOING_CRON', true );
    
    if ( ! defined( 'ABSPATH' ) ) {
    	/** Set up WordPress environment */
    	require_once __DIR__ . '/wp-load.php';
    }
    
    /**
     * Retrieves the cron lock.
     *
     * Returns the uncached <code>doing_cron</code> transient.
     *
     * @ignore
     * @since 3.3.0
     *
     * @global wpdb $wpdb WordPress database abstraction object.
     *
     * @return string|false Value of the <code>doing_cron</code> transient, 0|false otherwise.
     */
    function _get_cron_lock() {
    	global $wpdb;
    
    	$value = 0;
    	if ( wp_using_ext_object_cache() ) {
    		/*
    		 * Skip local cache and force re-fetch of doing_cron transient
    		 * in case another process updated the cache.
    		 */
    		$value = wp_cache_get( 'doing_cron', 'transient', true );
    	} else {
    		$row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", '_transient_doing_cron' ) );
    		if ( is_object( $row ) ) {
    			$value = $row->option_value;
    		}
    	}
    
    	return $value;
    }
    
    $crons = wp_get_ready_cron_jobs();
    if ( empty( $crons ) ) {
    	die();
    }
    
    $gmt_time = microtime( true );
    
    // The cron lock: a unix timestamp from when the cron was spawned.
    $doing_cron_transient = get_transient( 'doing_cron' );
    
    // Use global $doing_wp_cron lock, otherwise use the GET lock. If no lock, try to grab a new lock.
    if ( empty( $doing_wp_cron ) ) {
    	if ( empty( $_GET['doing_wp_cron'] ) ) {
    		// Called from external script/job. Try setting a lock.
    		if ( $doing_cron_transient && ( $doing_cron_transient + WP_CRON_LOCK_TIMEOUT > $gmt_time ) ) {
    			return;
    		}
    		$doing_wp_cron        = sprintf( '%.22F', microtime( true ) );
    		$doing_cron_transient = $doing_wp_cron;
    		set_transient( 'doing_cron', $doing_wp_cron );
    	} else {
    		$doing_wp_cron = $_GET['doing_wp_cron'];
    	}
    }
    
    /*
     * The cron lock (a unix timestamp set when the cron was spawned),
     * must match $doing_wp_cron (the "key").
     */
    if ( $doing_cron_transient !== $doing_wp_cron ) {
    	return;
    }
    
    foreach ( $crons as $timestamp => $cronhooks ) {
    	if ( $timestamp > $gmt_time ) {
    		break;
    	}
    
    	foreach ( $cronhooks as $hook => $keys ) {
    
    		foreach ( $keys as $k => $v ) {
    
    			$schedule = $v['schedule'];
    
    			if ( $schedule ) {
    				wp_reschedule_event( $timestamp, $schedule, $hook, $v['args'] );
    			}
    
    			wp_unschedule_event( $timestamp, $hook, $v['args'] );
    
    			/**
    			 * Fires scheduled events.
    			 *
    			 * @ignore
    			 * @since 2.1.0
    			 *
    			 * @param string $hook Name of the hook that was scheduled to be fired.
    			 * @param array  $args The arguments to be passed to the hook.
    			 */
    			do_action_ref_array( $hook, $v['args'] );
    
    			// If the hook ran too long and another cron process stole the lock, quit.
    			if ( _get_cron_lock() !== $doing_wp_cron ) {
    				return;
    			}
    		}
    	}
    }
    
    if ( _get_cron_lock() === $doing_wp_cron ) {
    	delete_transient( 'doing_cron' );
    }
    
    die();
    Plugin Author Emre Vona

    (@emrevona)

    if you want me to help you, then you need to do what I say. Do not waste either mine or your own time.

    can you be sure that WP_CRON works properly? can you publish a scheduled post please?

    Thread Starter qut1

    (@qut1)

    Sorry @emrevona, I read your text too quickly !
    I tried a scheduled article and it does not work…

    Plugin Author Emre Vona

    (@emrevona)

    it means that WP_CRON system has been disabled. You should contact your hosting provider.

    if you want to execute the preload manually, please take a look at the following tutorial.
    https://www.wpfastestcache.com/features/manually-preload-with-cron-jobs/

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘wp_fastest_cache_Preload, is late’ is closed to new replies.