Skip to content

Commit

Permalink
Merge pull request #4 from jmdana/master
Browse files Browse the repository at this point in the history
Allows bottle-memcache to set the timeout value in python-memcached.
  • Loading branch information
Thiago Avelino committed Apr 30, 2016
2 parents 1e5af33 + 600db2b commit 1d4ed71
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions bottle_memcache.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@ class MemcachePlugin(object):
name = 'memcache'

def __init__(self, servers=['localhost:11211', ], keyword='mc',
server_max_value_length=memcache.SERVER_MAX_VALUE_LENGTH):
server_max_value_length=memcache.SERVER_MAX_VALUE_LENGTH,
socket_timeout=memcache._SOCKET_TIMEOUT):

self.servers = servers
self.keyword = keyword
self.server_max_value_length = server_max_value_length
self.socket_timeout = socket_timeout

def setup(self, app):
for other in app.plugins:
Expand All @@ -32,16 +34,22 @@ def apply(self, callback, context):
conf = context['config'].get('memcache') or {}
self.servers = conf.get('servers', self.servers)
self.keyword = conf.get('keyword', self.keyword)
self.server_max_value_length = conf.get('server_max_value_length',
self.server_max_value_length)
self.server_max_value_length = conf.get(
'server_max_value_length', self.server_max_value_length
)
self.socket_timeout = conf.get('socket_timeout', self.socket_timeout)

args = inspect.getargspec(context['callback'])[0]
if self.keyword not in args:
return callback

def wrapper(*args, **kwargs):
mc = memcache.Client(servers=self.servers,
server_max_value_length=self.server_max_value_length, debug=0)
mc = memcache.Client(
servers=self.servers,
server_max_value_length=self.server_max_value_length,
socket_timeout=self.socket_timeout,
debug=0
)
kwargs[self.keyword] = mc
rv = callback(*args, **kwargs)
return rv
Expand Down

0 comments on commit 1d4ed71

Please sign in to comment.