View Source Plausible.Site.Cache.Warmer (Plausible v0.0.1)
A periodic cache warmer.
Queries all Sites from Postgres, every interval
and pre-populates the cache.
After each run the process is hibernated, triggering garbage collection.
Currently Cachex is used, but the underlying implementation can be transparently swapped.
Child specification options available:
interval
- the number of milliseconds for each warm-up cycle, defaults to:sites_by_domain_cache_refresh_interval
application env value with random jitter added, for which the maximum is stored under:sites_by_domain_cache_refresh_interval_max_jitter
key.cache_name
- defaults to Cache.name() but can be overriden for testingforce_start?
- enforcess process startup for testing, even if it's barred byCache.enabled?
. This is useful for avoiding issues with DB ownership and async tests.warmer_fn
- used for testing, a custom function to retrieve the items meant to be cached during the warm-up cycle.
See tests for more comprehensive examples.
Summary
Functions
@spec child_spec(Keyword.t()) :: Supervisor.child_spec() | :ignore
@spec interval() :: pos_integer()