Train 系列发布说明

1.37.1-5

新特性

  • 添加新的选项 (hashclient_retry_attempts, hashclient_retry_delay, dead_timeout) 以允许通过 dogpile.cache 的 pymemcache 后端配置 pymemcache 的 HashClient 使用。这些选项公开了 pymemcache 参数,允许配置 memcached 集群的故障转移。

  • 添加新的选项 (enable_retry_client, retry_attempts, retry_delay) 以向 pymemcache 后端添加重试机制。

  • 新的选项 (enable_socket_keepalive, socket_keepalive_idle, socket_keepalive_interval, socket_keepalive_count) 允许使用和配置 pymemcache 的 socket keepalive 功能。

1.37.1

新特性

  • 添加了一个新的 memcached 驱动程序,它通过 dogpile.cache 使用 pymemcache。

    如果愿意使用此驱动,请确保已安装 dogpile.cache>=1.1.2 和 pymemcache>=3.4.0。

1.37.0

升级说明

  • 已将 memcache_socket_timeout 的默认值从 3 秒降低到 1 秒。这种积极影响可以在下游 更改 中找到。如果您的部署明确依赖于 3 秒的超时时间,请在您的配置中设置该覆盖。

1.34.0

错误修复

  • [bug 1819957] 如果一个 memcache 服务器消失然后重新连接,当使用多个 memcache 服务器时(特定于基于 python-memcached 的后端),服务器可能包含过时的数据。默认情况下,现在是将可选参数 flush_on_reconnect 提供给后端。这意味着当服务连接到 memcache 服务器时,它将刷新服务器中的所有缓存数据。此更改仅影响池后端,因为它是最有可能(大量使用 greenlet)受到此问题影响,并且是推荐的生产配置。

    请参阅 python-memcached 的帮助

    @param flush_on_reconnect: 可选标志,可防止

    可能导致读取过时数据的场景:如果存在多个 memcached 服务器并且与其中一个的连接中断,映射到该服务器的键将被重新分配到另一个服务器。如果第一个服务器恢复,这些键将再次映射到它。如果它仍然保留其数据,get() 可能会读取在另一个服务器上覆盖的过时数据。默认情况下,此标志关闭以保持向后兼容性。