Skip to main content

Lazy cache updates for Django

Project description

django-update-cache

Lazy cache updates for Django.

Rationale

Cache function results with optional asynchronous updates.

Support

Supports: Python 3.10.

Supports Django Versions: 4.2.7

Installation

$ pip install django-update-cache

Usage

Add update_cache.apps.UpdateCacheConfig to INSTALLED_APPS.

Run migrations:

python manage.py migrate

Add a module cached_functions to one or more of your apps. Decorate any function for which you want the results to be cached:

# cached_functions.py
from update_cache.decorators import cache_function


@cache_function()
def my_expensive_function():
    ...

Specify a specific timeout:

# cached_functions.py
from update_cache.decorators import cache_function


@cache_function(timeout=60)
def my_expensive_function():
    ...

Use asynchronous updating (this requires running a django_rq worker):

# cached_functions.py
from update_cache.brokers import async_broker
from update_cache.decorators import cache_function


@cache_function(broker=async_broker)
def my_expensive_function():
    ...

Use a custom cache backend:

# cached_functions.py
from update_cache.decorators import cache_function


@cache_function(backend='my_cache_alias')
def my_expensive_function():
    ...

You can set a global broker to delegate the cache updates in settings.py.

DUC_DEFAULT_BROKER = 'update_cache.brokers.AsyncBroker'

Invalidate the cache:

# cached_functions.py
from update_cache.decorators import cache_function


@cache_function()
def my_expensive_function():
    ...


my_expensive_function.cache.invalidate()

Cache a view (only synchronous updates).

# cached_functions.py
from update_cache.decorators import cache_view


@cache_view()
def my_expensive_view():
    ...

View all cached entries in Django Admin:

cached entries

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-update-cache-1.0.6.tar.gz (116.3 kB view details)

Uploaded Source

Built Distribution

django_update_cache-1.0.6-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file django-update-cache-1.0.6.tar.gz.

File metadata

  • Download URL: django-update-cache-1.0.6.tar.gz
  • Upload date:
  • Size: 116.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for django-update-cache-1.0.6.tar.gz
Algorithm Hash digest
SHA256 efba2e8fe25ec143ce034180602205eec4619045a3f39146d6dcc54ca8ef668f
MD5 8644b346c0ba4ab425131c878069603e
BLAKE2b-256 d53176c09005a2c451bf142afbddd231d9c597eafed44669d3a112d95387da07

See more details on using hashes here.

File details

Details for the file django_update_cache-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for django_update_cache-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a86f761f41272242ad579cabd20e9aab285debf22d18d95aead7bf6237af90cf
MD5 d78220531c5f14beb6ab20554be7a561
BLAKE2b-256 2c4cec7456a18b71a125b9fc0551fce0484cebc09a5a4874ab71ea05c1174988

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page