本文整理汇总了Python中status.Status.inc方法的典型用法代码示例。如果您正苦于以下问题:Python Status.inc方法的具体用法?Python Status.inc怎么用?Python Status.inc使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类status.Status
的用法示例。
在下文中一共展示了Status.inc方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: CacheServer
# 需要导入模块: from status import Status [as 别名]
# 或者: from status.Status import inc [as 别名]
class CacheServer(TCPServer):
"""
缓存服务器
"""
status_fields = [
'total_commands_processed', # 0
'connected_clients', # 1
'all_clients', # 2
'total_connections_received', # 3
'total_connections_send', # 4
'slave_sync_rate', # 5
'slave_sync_ok', # 6
]
def __init__(self, config):
self.config = config # 应用程序配置
self.connections = 0 # 连接客户端列表
if self.config['savetime'] != 0: # 不保存数据
self.thread = PeriodicCallback(self.save_db,
int(self.config['savetime']) * 1000)
self.thread.start() # 背景保存服务线程启动
self.workpool = ThreadPool(int(config['work_pool'])) # 工作线程池
self.status = Status(CacheServer.status_fields) # 服务器状态
self.slave_clients = {} # 同步客户端
self.is_sync = False # 是否在同步
if self.config['master'] is not None: # 从服务器启动
shutil.rmtree(config['db'])
self.master_server = PyCachedClient(self.config['master'][0],
self.config['master'][1])
self.master_server.sync(self.config['port'])
self.slavepool = None
self.slave = True # 是否为Slave模式
else: # 主服务器启动, 需要启动从命令工作线程
self.slavepool = ThreadPool(int(config['slave_pool'])) # slave Command send pools
self.slave = False # 是否为Slave模式
self.memory = Memory(config['db']) # 缓存服务类
super(CacheServer, self).__init__()
def handle_stream(self, stream, address):
"""
有连接进入
"""
if not self.is_sync:
self.connections += 1
ClientConnection(stream, self, address)
self.status.inc(self.status_fields[1])
self.status.inc(self.status_fields[2])
logger.info("Client[%s] connection is success." % id(stream))
else:
logger.warn("Server sync mode don't connection")
def close_stream(self, hashid):
"""
客户端关闭连接
"""
self.connections -= 0
try:
del self.slave_clients[hashid]
logger.warn("Slave server[%s] leaving." % hashid)
except KeyError:
pass
self.status.dec(self.status_fields[1])
logger.info("Client[%s] connect is closed." % hashid)
def save_db(self):
"""
内存的数据保存到DB
"""
self.memory.dump_db()
def shutdown(self):
"""
关闭服务器
"""
logger.warn('PyCached server shutdown...')
#gevent.wait()
import os
try:
os.unlink(options.pid)
except OSError:
pass
self.save_db()