浏览代码

Switch to using internal request counter

Daniel Gruno 5 年之前
父节点
当前提交
e41f511f55
共有 2 个文件被更改,包括 5 次插入5 次删除
  1. 1 0
      CHANGELOG.md
  2. 4 5
      pypubsub.py

+ 1 - 0
CHANGELOG.md

@@ -1,5 +1,6 @@
 # 0.4.6
 - Changed content type to better reflect that this is a custom stream
+- Switched to internal counter for number of requests served
 
 # 0.4.5
 - Better handling of errored subscriber connections

+ 4 - 5
pypubsub.py

@@ -43,10 +43,10 @@ class Server:
     def __init__(self, args):
         self.config = yaml.safe_load(open(args.config))
         self.lconfig = None
-        self.no_requests = 0
         self.subscribers = []
         self.pending_events = []
         self.last_ping = time.time()
+        self.server = None
 
         if 'ldap' in self.config.get('clients', {}):
             self.lconfig = self.config['clients']['ldap']
@@ -72,12 +72,11 @@ class Server:
 
     async def handle_request(self, request):
         """Generic handler for all incoming HTTP requests"""
-        self.no_requests += 1
         # Define response headers first...
         headers = {
             'Server': 'PyPubSub/%s' % PUBSUB_VERSION,
             'X-Subscribers': str(len(self.subscribers)),
-            'X-Requests': str(self.no_requests),
+            'X-Requests': str(self.server.requests_count),
         }
 
         # Are we handling a publisher payload request? (PUT/POST)
@@ -142,8 +141,8 @@ class Server:
             return resp
 
     async def server_loop(self):
-        server = aiohttp.web.Server(self.handle_request)
-        runner = aiohttp.web.ServerRunner(server)
+        self.server = aiohttp.web.Server(self.handle_request)
+        runner = aiohttp.web.ServerRunner(self.server)
         await runner.setup()
         site = aiohttp.web.TCPSite(runner, self.config['server']['bind'], self.config['server']['port'])
         await site.start()