Offload "Purge Entire Cache" request to cron service/schedule#331
Open
abdusfauzi wants to merge 2 commits intortCamp:masterfrom
Open
Offload "Purge Entire Cache" request to cron service/schedule#331abdusfauzi wants to merge 2 commits intortCamp:masterfrom
abdusfauzi wants to merge 2 commits intortCamp:masterfrom
Conversation
Introduce a hook "nginx_helper_unlink_recursive" to run a function "run_cron_unlink_recursive()" which will run the "unlink_recursive()" function and delete all directory
Refactor purge_all from running the `$this->unlink_recursive()` immediately, to being scheduled to offload this task to cron service and run as soon as possible. This to avoid the overhead of buffering the response immediately to Nginx and trigger the error "upstream sent too big header while reading response header from upstream"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I have a multisite blog and the cache is quite large due to the number of traffic and contents.
I have been facing the error in Nginx as below:
And changing the Nginx
fastcgi_buffersandfastcgi_buffer_sizedoes not seems to solve the issue. Hence, I went deep into the plugin to see where does this came from.Apparently, on the request to "Purge Entire Cache", the GET request execute the
purge_allmethod inFastCGI_Purger class. Then, in that method is runs$this->unlink_recursive(). This seems to produce huge response buffer.I decided to offload that process to Cron, using
wp_schedule_single_event.