New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[5.x] Enable background re-caching of static cache #9396
base: 5.x
Are you sure you want to change the base?
[5.x] Enable background re-caching of static cache #9396
Conversation
Do I understand correctly, that this will serve the old cached file until the new cached file is ready? And then it gets rid of the old cached file? Or what exactly is the purpose of this? Sounds interesting for sure. Also, from a configuration point of view, it might be easier to just have the config to be a boolean and then assign a random string automatically if the config is true. |
When the new cached file is ready, it'll just stomp over the top of the old one.
We need to know the value ahead of time, so it can't just be a randomly changing string. |
@aerni the idea of it being a fixed string was to provide some sort of security - that someone malicious couldn’t just constantly force your site to recache. |
Personally, I'd be a little intimidated by the instruction to "add a unique string here that should not be easy to guess". Like, what is "easy to guess"? Couldn't we just use the
By "stomp over" I suppose you mean the old file will just not be served anymore? Won't this result in a lot of abandoned files pretty fast? Should there maybe be some sort of cleanup? |
Maybe we could make it a Boolean config and the token could be a Crypt or Sha of the url. The app key is used in the Crypt so it wouldn’t be game-able. |
it literally replaces the same file. So no clean up will be needed. |
Oh yeah, makes sense. It's early morning here 😄 |
@aerni here you go - its a boolean now. Feels simpler. |
Love it, thanks! Curious as to why you decided to make this opt-in, though. Feels like everyone who uses static caching would want to enable this feature. Or is there any potential downside to it? |
I make all my PRs opt in until Jason changes them to not be :) |
This PR enables background re-caching of the static cache through a new
static_caching.background_recache
variable (or STATAMIC_BACKGROUND_RECACHE .env value).When set to true the static cache will re-cache the page without invalidating the previous cache, so at every point a static file will exist and end users will not encounter slow loading pages.
Invalidation continues to occur as it currently does when content is deleted, or when this variable is set to false (the default).