Migrate queued metric from processes to threads

This commit is contained in:
Jimmy Zelinskie 2015-01-16 15:30:58 -05:00
parent 07bb9be603
commit 33088f742a
2 changed files with 15 additions and 12 deletions

View file

@ -1,7 +1,9 @@
import logging
import boto
from multiprocessing import Process, Queue
from Queue import Queue
from threading import Thread
logger = logging.getLogger(__name__)
@ -35,15 +37,16 @@ class QueueingCloudWatchReporter(object):
unit='Percent')
class SendToCloudWatch(Process):
class SendToCloudWatch(Thread):
""" SendToCloudWatch loops indefinitely and pulls metrics off of a queue then sends it to
CloudWatch. """
def __init__(self, request_queue, aws_access_key, aws_secret_key):
Process.__init__(self)
Thread.__init__(self)
self.daemon = True
self._aws_access_key = aws_access_key
self._aws_secret_key = aws_secret_key
self._put_metrics_queue = request_queue
self.daemon = True
def run(self):
logger.debug('Starting CloudWatch sender process.')
@ -54,7 +57,7 @@ class SendToCloudWatch(Process):
try:
connection.put_metric_data(*put_metric_args, **kwargs)
except:
logger.exception('Writing to CloudWatch failed')
logger.exception('Failed to write to CloudWatch')
class QueueMetrics(object):