Support » Plugin: WP Fastest Cache » Cloudflare integration and slowliness

  • I found out the hard way that when the cloudflare integration is enabled, on each page load, 4 requests are sent out to Cloudflare taking all between 1.2seconds and 0.6s, effectively augmenting the TTFB by 4seconds, not really great for a caching plugin…

    Please fix this issue.. API calls like this should reside in cron jobs

    • This topic was modified 8 months, 2 weeks ago by Tofandel.
Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Author Emre Vona

    (@emrevona)

    Cloudflare integration is not related with cloudflare cache. the integration clears the cache of clouddflare when the cache is clared. that’s all.

    Thread Starter Tofandel

    (@tofandel)

    And your answer is completely unrelated to what I explained…
    I’m saying that when the integration is enabled API calls are being made to cloudlfare on each request… And those api calls are synchronous so blocking script execution, which means that every non cached page gets an increase of 4s TTFB

    cloudflare_get_zone_id + cloudflare_clear_cache is executed twice on each page because a non cached post is being updated (eg when adding to the cart, passing an order, posting a comment), the result of the first request can easily and SHOULD BE cached, as for the cache clear it should be proxied and register a wordpress cron job to execute the api call on the next cron run, not in sync with the request or the user is subject to terrible waiting times

    Another possibility way easier to implement than cron job is to modify the function so that it is non blocking and runs only once

    
    public static function cloudflare_clear_cache($email = false, $key = false, $zoneid = false){
    	static $executed = false; //diff
    
    	if ($executed) { //diff
    		return;
    	}
    
    	if(!$email && !$key && !$zoneid){
    		if($cdn_values = get_option("WpFastestCacheCDN")){
    			$std_obj = json_decode($cdn_values);
    
    			foreach ($std_obj as $key => $value) {
    				if($value->id == "cloudflare"){
    					$email = $value->cdnurl;
    					$key = $value->originurl;
    					break;
    				}
    			}
    
    			if($email && $key){
    				$zone = self::cloudflare_get_zone_id($email, $key, false);
    
    				if($zone["success"]){
    					$zoneid = $zone["zoneid"];
    				}
    			}
    		}
    	}
    
    	if($email && $key && $zoneid){
    		$header = array("method" => "DELETE",
    					'headers' => array(
    									"X-Auth-Email" => $email,
    									"X-Auth-Key" => $key,
    									"Content-Type" => "application/json"
    									),
    					"blocking" => false, //diff
    					"body" => '{"purge_everything":true}'
    					);
    
    		wp_remote_request('https://api.cloudflare.com/client/v4/zones/'.$zoneid.'/purge_cache', $header);
    		$executed = true; //diff
    	}
    }
    

    Until this is solved, the cloudflare cache integration is unusable.

    • This reply was modified 8 months, 2 weeks ago by Tofandel.
    • This reply was modified 8 months, 2 weeks ago by Tofandel.
    • This reply was modified 8 months, 2 weeks ago by Tofandel.
    Plugin Author Emre Vona

    (@emrevona)

    I got you now 🙂 thanks for your advise. is it a critical issue?

    I would love to see a version of @tofandel’s fix applied, every millisecond counts and if there are extra / unnecessary calls to Cloudflare when it can be done in one call, then it should be looked into.

    Plugin Author Emre Vona

    (@emrevona)

    I will fix it and let you know.

    Thank you for hearing us out, Emre! (just to let you know, I bought a license earlier today!)

    Can’t wait to see the update, a fast website is a happy website. 😀

    I will be waiting for this too!

    Plugin Author Emre Vona

    (@emrevona)

    I fixed the problem. You can check the changes via the following link.
    https://plugins.trac.wordpress.org/changeset/2407419/wp-fastest-cache/trunk/inc/cdn.php

    You need to delete wp fastest cache and download the following version to get the latest changes.
    https://downloads.wordpress.org/plugin/wp-fastest-cache.zip

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Cloudflare integration and slowliness’ is closed to new replies.