使用consu生成memcached服务器列表的django模块

django-memcached-consul的Python项目详细描述


django memcached领事馆

django memcached consur帮助使用memcached服务器的consur。 它将查询consunhealthapi,以便在每次使用缓存时获取服务器列表。

用法

配置在django项目的local_settings.py的缓存部分完成。 django memcached consul使用django memcached驱动程序,因此所有与 缓存本身应该像在django memcached中那样进行。

要使用consu,您需要使用特定的django memcached consu驱动程序: django-consul-memcached.memcached.MemcachedCache

并提供有关领事和所需服务的信息:

CONSUL_HOST # The Consul API host
CONSUL_PORT # The Consul API port
CONSUL_SERVICE # The service of the memcached servers in Consul

可以并且强烈建议为consul使用缓存,否则将调用consunapi 将在每次使用缓存时发出。

django memcached consul使用两层缓存:第一层应该是短生命的(CONSUL_TTL) 用于缓存memcached服务器列表,每次使用 django consul memcached驱动程序。第二个是长寿命(CONSUL_TTL_ALT),在 无法访问领事API。要使用的缓存的名称在CONSUL_CACHE和缓存中设置 最好是基于文件的缓存,以便在所有工作进程中共享。

示例

CACHES = {
    'default': {
        'BACKEND': 'django_memcached_consul.memcached.MemcachedCache',
        'TIMEOUT': 60,
        'CONSUL_TTL': 60,
        # Alt cache will be used if consul is unreachable
        'CONSUL_ALT_TTL': 3600,
        'CONSUL_CACHE': 'consul-memcached',
        'CONSUL_HOST': 'consul.organization.com',
        'CONSUL_PORT': 8500,
        'CONSUL_SERVICE': 'memcached-service',
    },
    'consul-memcached': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': '/var/tmp/django_consul_cache',
    }
}

测试

测试需要memcached和tox。

首先需要在默认配置(通常在localhost:11211)上运行memcached,否则 必须更改tests/tests_data/consul_api_health_mock_with_memcached.json中的信息。

然后,您可以在项目的根目录下运行tox来开始测试:

tox

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在依赖项上没有这样的方法异常   java如何将@Value注入setter?   验证输入java的最佳实践   java在使用kotlin的安卓项目中没有此类字段错误   我们可以强制java接口实现超时吗?   java将BasicAuth()与FormLogin()组合用于不同的路径   java无法在更新SDK后更新应用程序(未安装应用程序)   macos Java 8、Swing和OSX:对话框使UI对鼠标无响应   java自定义单元格格式以US格式显示,尽管使用了带UK语言环境的DataFormatter   java按升序排列列表字符串数据   java Hibernate OGM[PersistenceUnit:person]无法构建Hibernate SessionFactory   生命周期配置未涵盖java插件执行:com。乱穿马路。专家插件。安卓generation2:安卓mavenplugin:3.5.0:generatesources   java RecyclerView显示为空   当服务器不返回任何输入时,java InputStream read()会阻塞