8000 Changes to allow each HTTP request to be a seperate thread (#139) · blopker/client_python@ce5542b · GitHub
[go: up one dir, main page]

Skip to content

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ce5542b

Browse files
jamessewellbrian-brazil
authored andcommitted
Changes to allow each HTTP request to be a seperate thread (prometheus#139)
Allow each HTTP request to be a separate thread
1 parent 6a8d85e commit ce5542b

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

prometheus_client/exposition.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@
1212

1313
from . import core
1414
try:
15-
from BaseHTTPServer import BaseHTTPRequestHandler
16-
from BaseHTTPServer import HTTPServer
15+
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
16+
from SocketServer import ThreadingMixIn
1717
from urllib2 import build_opener, Request, HTTPHandler
1818
from urllib import quote_plus
1919
from urlparse import parse_qs, urlparse
2020
except ImportError:
2121
# Python 3
2222
unicode = str
23-
from http.server import BaseHTTPRequestHandler
24-
from http.server import HTTPServer
23+
from http.server import BaseHTTPRequestHandler, HTTPServer
24+
from socketserver import ThreadingMixIn
2525
from urllib.request import build_opener, Request, HTTPHandler
2626
from urllib.parse import quote_plus, parse_qs, urlparse
2727

@@ -97,10 +97,12 @@ def log_message(self, format, *args):
9797

9898

9999
def start_http_server(port, addr=''):
100-
"""Starts a HTTP server for prometheus metrics as a daemon thread."""
100+
"""Starts an HTTP server for prometheus metrics as a daemon thread"""
101+
class ThreadingSimpleServer(ThreadingMixIn, HTTPServer):
102+
pass
101103
class PrometheusMetricsServer(threading.Thread):
102104
def run(self):
103-
httpd = HTTPServer((addr, port), MetricsHandler)
105+
httpd = ThreadingSimpleServer((addr, port), MetricsHandler)
104106
httpd.serve_forever()
105107
t = PrometheusMetricsServer()
106108
t.daemon = True

0 commit comments

Comments
 (0)
0