Caching — Geraldo Reports Documentation v0.4-alpha-5 documentation

### Navigation

- index
- next |
- previous |
- Geraldo Reports Documentation v0.4-alpha-5 documentation »

# Caching

Geraldo Reports has support to reports caching. This means you can store reports in a directory (or other kind of cache store you want) and Geraldo will find them and return when the same report be generated.

This is why exists the module geraldo.cache. There are general settings you can set to enable caching and extend its functios.

## Settings

All of the following settings are generic and are used by respective ones in each report class, and there they can be overridden too.

- DEFAULT_CACHE_STATUS - Default: geraldo.cache.CACHE_DISABLED

  > This setting can receive three different types of status:

  > - geraldo.cache.CACHE_DISABLED

  >   > Just disables the caching at all.

  > - geraldo.cache.CACHE_BY_QUERYSET

  >   > Enable the caching function to use queryset values as the base to generate a hash key and store in the cache. You must use this if the most important thing for you is the data in the report. By the way, this choice is the fastest one.

  > - geraldo.cache.CACHE_BY_RENDER

  >   > Enable the caching function to use the rendered objects as the base to generate a hash key and store in the cache. You must use this if you want to consider style and feel when storing to cache. This is not the fastest but probably the most reliable.

- CACHE_BACKEND - Default: ‘geraldo.cache.FileCacheBackend’

  > Just inform the full string path to a backend class.

- CACHE_FILE_ROOT - Default: ‘/tmp/’

  > Just inform (if you are using the FileCacheBackend backend) the path of directory where you want to store the cache files.

## Classes

- FileCacheBackend

  > This is the default (and the only one Geraldo supplies) cache backend. It stores files in a directory on the file system (hard disk).

  > You can extend this class if you want to tun up the file system caching.

- BaseCacheBackend

  > If you want to extend cache to a different kind of cache store (i.e. memcache, database or someone else), you have to make a class inheriting from this one.

  > Basically you must set three methods:

  > - get(hash_key)
  > - set(hash_key, content)
  > - exsts(hash_key)

### Navigation

- index
- next |
- previous |
- Geraldo Reports Documentation v0.4-alpha-5 documentation »