Skip to content

An async http client for tornado with stale cache support

License

Notifications You must be signed in to change notification settings

globocom/tornado-stale-client

Repository files navigation

tornado-stale-client

Build Status

An async http client for tornado with stale cache support.

Using

from smart_sentinel.tornado_client import TornadoStrictRedis
from tornado_stale_client import StaleHTTPClient

@gen.coroutine
def main():
    cache = TornadoStrictRedis()
    client = StaleHTTPClient(cache=cache)

    response = yield client.fetch('http://...')
    print(response.code, 'GET', url, response.body)

You can also configure ttl and stale_ttl per request

    # ...
    response = yield client.fetch('http://...', ttl=1, stale_ttl=300)

Check example.py for a runnable demo.

Options

The client accepts the following options:

Option Description Default
cache Async TornadoStrictRedis instance or compatible smart_sentinel.tornado_client.TornadoStrictRedis
client Accepts any compatible tornado async http client tornado.httpclient.AsyncHTTPClient
primary_key_prefix Prefix to use for the primary cache "primary_http"
stale_key_prefix Prefix to use for the stale cache "stale_http"
ttl float, time in seconds to keep the response in the primary cache 5.0
vary list of headers in which the cache should vary None

Installing

pip install tornado-stale-client

Testing / contributing

Clone, setup, test.

make setup
make test

Releasing

  • Bump to a patch, minor or major version.
# By default bumps to a patch version
make bump

# Or specific bump
make patch bump
make minor bump
make major bump
  • Upload release to PyPI

The name of the server on .pypirc will be asked.

make release

About

An async http client for tornado with stale cache support

Resources

License

Stars

Watchers

Forks

Packages

No packages published