示例#1
0
文件: memcached.py 项目: rsms/smisk
def shared_dict(name=None, nodes=['127.0.0.1:11211'], memcached_debug=0):
  '''Shared memcached-based dictionary.
  '''
  if name is None:
    name = app_shared_key()
  name = str(name)
  dicts_ck = name + str(object_hash(nodes))
  try:
    return _dicts[dicts_ck]
  except KeyError:
    pass
  client = memcache.Client(nodes, debug=memcached_debug)
  d = MCDict(client, name)
  _dicts[dicts_ck] = d
  return d
示例#2
0
文件: bsddb.py 项目: rsms/smisk
from tempfile import gettempdir

_dicts = {}

def shared_dict(filename=None, homedir=None, name=None, mode=0600, dbenv=None, 
								type=db.DB_HASH, flags=db.DB_CREATE, persistent=False):
	orig_name = name
	is_tempdir = False
	
	if filename:
		filename = os.path.abspath(filename)
		homedir = os.path.dirname(filename)
		name = os.path.basename(filename)
	else:
		if name is None:
			name = app_shared_key()
		if homedir is None:
			is_tempdir = True
			homedir = os.path.join(gettempdir(), '%s.ipc' % name)
		filename = os.path.abspath(os.path.join(homedir, name))
	
	try:
		return _dicts[filename]
	except KeyError:
		pass
	
	if not persistent and os.path.isdir(homedir):
		try:
			shutil.rmtree(homedir, True)
			os.mkdir(homedir)
		except: