28 lines
666 B
Python
28 lines
666 B
Python
from queue import Queue
|
|
from threading import Thread
|
|
|
|
|
|
class MetricsSender(Thread):
|
|
queue: Queue = Queue()
|
|
|
|
def put(self, metric):
|
|
self.queue.put(metric)
|
|
|
|
def run(self):
|
|
while True:
|
|
metric = self.queue.get()
|
|
if not metric:
|
|
continue
|
|
|
|
try:
|
|
metric = metric()
|
|
if metric.status_code == 202:
|
|
print('metric ok')
|
|
else:
|
|
print(f'metric failed: {metric.status_code}')
|
|
except Exception as e:
|
|
print(f'metric failed: {e}')
|
|
|
|
metrics_sender = MetricsSender()
|
|
metrics_sender.start()
|