Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache struct {
// contains filtered or unexported fields
}
func NewCache ¶
NewCache is a in memory cache
maxItemBytes < 0, no limit
> 0, only data within this limit can be cached == 0, disable in memory caching
maxBytes < 0, no limit
> 0, limit total cached in memory data with this size == 0, disable in memory caching
maxAgeSeconds < 0, always fetch data
> 0, data become invalid after this duration == 0, defaults to 5
func (*Cache) Get ¶
func (c *Cache) Get(obj IdentifiableObject, refresh LocalCacheRefreshFunc) ([]byte, error)
type Config ¶
type Config struct {
rs.BaseField `yaml:"-"`
// EnableCache activates rendered data caching
//
// * for renderers reading data directly from local disk (e.g. file):
// will cache content in memory with size limit applied
// * for renderers doing remote fetch (e.g. http, git, af):
// will cache data on local disk first (cache size limiting is not effective at this time)
// then cache data in memory with size limit applied
//
// Defaults to `false`
EnableCache bool `yaml:"enable_cache"`
// CacheItemSizeLimit is the maximum size limit an item can be cached in memory
//
// Format: <number><unit>
// where unit can be one of: [ , B, KB, MB, GB, TB, PB]
//
// Defaults to `0` (no size limit for single item)
CacheItemSizeLimit utils.Size `yaml:"cache_item_size_limit"`
// CacheSizeLimit limits maximum in memory size of cache of the renderer
//
// Format: <number><unit>
// where unit can be one of: [ , B, KB, MB, GB, TB, PB]
//
// Defaults to `0` (no size limit)
CacheSizeLimit utils.Size `yaml:"cache_size_limit"`
// CacheMaxAge limits maximum data caching time
//
// if caching is enabled and this option is set to 0:
// in memory cache will never expire during runtime
// file cache for remote content will expire immediately (probably that's not what you want)
//
// Defaults to `0`
CacheMaxAge time.Duration `yaml:"cache_max_age"`
}
Config is the config for rendered data caching
type IdentifiableObject ¶
type IdentifiableString ¶
type IdentifiableString string
func (IdentifiableString) Ext ¶ added in v0.6.0
func (s IdentifiableString) Ext() string
Ext returns file extension
func (IdentifiableString) ScopeUniqueID ¶
func (s IdentifiableString) ScopeUniqueID() string
type LocalCacheRefreshFunc ¶
type LocalCacheRefreshFunc func(obj IdentifiableObject) ([]byte, error)
type RemoteCacheRefreshFunc ¶
type RemoteCacheRefreshFunc func(obj IdentifiableObject) (io.ReadCloser, error)
type TwoTierCache ¶
type TwoTierCache struct {
// contains filtered or unexported fields
}
func NewTwoTierCache ¶
func NewTwoTierCache(cacheDir string, itemMaxBytes, maxBytes, maxAgeSeconds int64) *TwoTierCache
NewTwoTierCache
itemMaxBytes < 0, no limit to item size
> 0, only items with size below can be cached == 0, in memory caching disabled
maxBytes < 0, no limit to total cache size
> 0, limit cache size to maxBytes == 0, in memory caching disabled
maxAgeSeconds <= 0, once cached in memory, always valid during runtime,
but will always fetch from remote if in memory cache lost > 0, limit both in memory and local file cache to this long.
func (*TwoTierCache) Get ¶
func (c *TwoTierCache) Get( obj IdentifiableObject, now int64, allowExpired bool, refresh RemoteCacheRefreshFunc, ) ([]byte, bool, error)
Get cached content
now is the unix timestamp of the time being
func (*TwoTierCache) GetPath ¶
func (c *TwoTierCache) GetPath( obj IdentifiableObject, now int64, allowExpired bool, refresh RemoteCacheRefreshFunc, ) (string, bool, error)
GetPath find local file path to cached data
now is the unix timestamp of the time being
Click to show internal directories.
Click to hide internal directories.