Server IP : 103.191.208.50 / Your IP : 216.73.216.226 Web Server : LiteSpeed System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64 User : celkcksm ( 1031) PHP Version : 5.6.40 Disable Function : show_source, system, shell_exec, passthru, exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/../usr/local/lib/python3.6/site-packages/uhashring/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
from uhashring import HashRing __all__ = ["patch_memcache"] def patch_memcache(): """Monkey patch python-memcached to implement our consistent hashring in its node selection and operations. """ def _init(self, servers, *k, **kw): self._old_init(servers, *k, **kw) nodes = {} for server in self.servers: conf = { "hostname": server.ip, "instance": server, "port": server.port, "weight": server.weight, } nodes[server.ip] = conf self.uhashring = HashRing(nodes) def _get_server(self, key): if isinstance(key, tuple): return self._old_get_server(key) for i in range(self._SERVER_RETRIES): for node in self.uhashring.range(key): if node["instance"].connect(): return node["instance"], key return None, None memcache = __import__("memcache") memcache.Client._old_get_server = memcache.Client._get_server memcache.Client._old_init = memcache.Client.__init__ memcache.Client.__init__ = _init memcache.Client._get_server = _get_server