当无法连接到python-memcached服务器时,如何进行检查的方法
我正在使用Python的memcached,但连接的服务器挂了,但是处理仍在继续,让我有些困扰。
cause/reason
def _set(self, cmd, key, val, time, min_compress_len = 0):
self.check_key(key)
server, key = self._get_server(key)
if not server:
return 0
当设置为set时,即使服务器不存在,也会返回0。
def _get(self, cmd, key):
self.check_key(key)
server, key = self._get_server(key)
if not server:
return None
不管是否进行了GET请求,也不管服务器是否存在,结果都会返回None。
如果这样的话,无法确定是实际的值未被设置为None,还是服务器不存在而为None。
解决方案
我认为这不是正确的翻译,但是因为还能辨认出来,所以就先这样吧。
client = memcache.Client(['192.168.1.1:11211'])
if len(client.get_stats()) == 0:
raise Exception('Kestrel server not connected.')
stats()函数会获取每台服务器的状态,但如果服务器没有连接,则不会获取其状态。
我考虑将寿命缩短并设置值,然后检查是否返回0… 但考虑到服务器的连接次数,也许那样更好?w
如果有什么好的方法,请大家教教我吧。