mirror of
https://github.com/sprockets/sprockets.mixins.metrics.git
synced 2024-11-21 11:18:37 +00:00
Use native async
Also remove a test that isn't that useful
This commit is contained in:
parent
8cc566acfd
commit
ad19d64911
5 changed files with 18 additions and 32 deletions
|
@ -26,7 +26,7 @@ call to the ``get`` method as well as a separate metric for the database query.
|
|||
|
||||
from sprockets.mixins import mediatype
|
||||
from sprockets.mixins.metrics import statsd
|
||||
from tornado import gen, web
|
||||
from tornado import web
|
||||
import queries
|
||||
|
||||
def make_application():
|
||||
|
@ -47,10 +47,9 @@ call to the ``get`` method as well as a separate metric for the database query.
|
|||
super(MyHandler, self).initialize()
|
||||
self.db = queries.TornadoSession(os.environ['MY_PGSQL_DSN'])
|
||||
|
||||
@gen.coroutine
|
||||
def get(self, obj_id):
|
||||
async def get(self, obj_id):
|
||||
with self.execution_timer('dbquery', 'get'):
|
||||
result = yield self.db.query('SELECT * FROM foo WHERE id=%s',
|
||||
result = await self.db.query('SELECT * FROM foo WHERE id=%s',
|
||||
obj_id)
|
||||
self.send_response(result)
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
import asyncio
|
||||
import signal
|
||||
|
||||
from sprockets.mixins.metrics import statsd
|
||||
from tornado import concurrent, gen, ioloop, web
|
||||
from tornado import ioloop, web
|
||||
|
||||
|
||||
class SimpleHandler(statsd.StatsdMixin, web.RequestHandler):
|
||||
|
@ -14,9 +15,8 @@ class SimpleHandler(statsd.StatsdMixin, web.RequestHandler):
|
|||
|
||||
"""
|
||||
|
||||
@gen.coroutine
|
||||
def get(self):
|
||||
yield gen.sleep(0.25)
|
||||
async def get(self):
|
||||
await asyncio.sleep(0.25)
|
||||
self.set_status(204)
|
||||
self.finish()
|
||||
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
import asyncio
|
||||
import contextlib
|
||||
import logging
|
||||
import os
|
||||
import socket
|
||||
import time
|
||||
|
||||
from tornado import gen, iostream
|
||||
from tornado import iostream
|
||||
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -134,12 +135,11 @@ class StatsDCollector:
|
|||
sock.set_close_callback(self._tcp_on_closed)
|
||||
return sock
|
||||
|
||||
@gen.engine
|
||||
def _tcp_on_closed(self):
|
||||
async def _tcp_on_closed(self):
|
||||
"""Invoked when the socket is closed."""
|
||||
LOGGER.warning('Not connected to statsd, connecting in %s seconds',
|
||||
self._tcp_reconnect_sleep)
|
||||
yield gen.sleep(self._tcp_reconnect_sleep)
|
||||
await asyncio.sleep(self._tcp_reconnect_sleep)
|
||||
self._sock = self._tcp_socket()
|
||||
|
||||
def _tcp_on_connected(self):
|
||||
|
|
|
@ -2,7 +2,7 @@ import logging
|
|||
import re
|
||||
import socket
|
||||
|
||||
from tornado import gen, iostream, locks, tcpserver, testing
|
||||
from tornado import iostream, locks, tcpserver, testing
|
||||
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -67,11 +67,10 @@ class FakeStatsdServer(tcpserver.TCPServer):
|
|||
self.socket.close()
|
||||
self.socket = None
|
||||
|
||||
@gen.coroutine
|
||||
def handle_stream(self, stream, address):
|
||||
async def handle_stream(self, stream, address):
|
||||
while True:
|
||||
try:
|
||||
result = yield stream.read_until_regex(self.TCP_PATTERN)
|
||||
result = await stream.read_until_regex(self.TCP_PATTERN)
|
||||
except iostream.StreamClosedError:
|
||||
break
|
||||
else:
|
||||
|
|
20
tests.py
20
tests.py
|
@ -1,9 +1,10 @@
|
|||
import asyncio
|
||||
import itertools
|
||||
import socket
|
||||
import unittest
|
||||
from unittest import mock
|
||||
|
||||
from tornado import gen, iostream, testing, web
|
||||
from tornado import iostream, testing, web
|
||||
|
||||
from sprockets.mixins.metrics import statsd
|
||||
from sprockets.mixins.metrics.testing import FakeStatsdServer
|
||||
|
@ -12,10 +13,9 @@ import examples.statsd
|
|||
|
||||
class CounterBumper(statsd.StatsdMixin, web.RequestHandler):
|
||||
|
||||
@gen.coroutine
|
||||
def get(self, counter, value):
|
||||
async def get(self, counter, value):
|
||||
with self.execution_timer(*counter.split('.')):
|
||||
yield gen.sleep(float(value))
|
||||
await asyncio.sleep(float(value))
|
||||
self.set_status(204)
|
||||
self.finish()
|
||||
|
||||
|
@ -75,18 +75,6 @@ class TCPStatsdMetricCollectionTests(testing.AsyncHTTPTestCase):
|
|||
'protocol': 'tcp',
|
||||
'prepend_metric_type': True})
|
||||
|
||||
def test_tcp_reconnect_on_stream_close(self):
|
||||
path_sleep = 'tornado.gen.sleep'
|
||||
path_statsd = self.application.statsd
|
||||
with mock.patch(path_sleep) as gen_sleep, \
|
||||
mock.patch.object(path_statsd, '_tcp_socket') as mock_tcp_socket:
|
||||
f = web.Future()
|
||||
f.set_result(None)
|
||||
gen_sleep.return_value = f
|
||||
|
||||
self.application.statsd._tcp_on_closed()
|
||||
mock_tcp_socket.assert_called_once_with()
|
||||
|
||||
@mock.patch.object(iostream.IOStream, 'write')
|
||||
def test_write_not_executed_when_connection_is_closed(self, mock_write):
|
||||
self.application.statsd._sock.close()
|
||||
|
|
Loading…
Reference in a new issue