This commit is contained in:
Egor Matveev 2025-06-15 03:45:21 +03:00
parent 88914893ce
commit ea3e4837f2

View File

@ -21,26 +21,6 @@ class QueuesException(Exception):
class TasksHandlerMixin: class TasksHandlerMixin:
def _send_metric(self, start, success, end):
try:
metric = requests.post('http://monitoring:1237/api/v1/metrics/task', json={
'timestamp': start.strftime("%Y-%m-%dT%H:%M:%S") + "Z",
'service': 'botalka',
'environment': stage,
'queue': self.queue_name,
'success': success,
'execution_time_ms': (end - start).microseconds // 1000,
})
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}')
def send_metric(self, start, success, end):
# executor.submit(self._send_metric, start, success, end)
...
def poll(self): def poll(self):
while True: while True:
@ -62,13 +42,13 @@ class TasksHandlerMixin:
print(f'Error processing message id={task["id"]}, payload={task["payload"]}, exc={exc}') print(f'Error processing message id={task["id"]}, payload={task["payload"]}, exc={exc}')
success = False success = False
end = datetime.datetime.now().astimezone(zoneinfo.ZoneInfo("Europe/Moscow")) end = datetime.datetime.now().astimezone(zoneinfo.ZoneInfo("Europe/Moscow"))
try: if success:
resp = requests.post(f'{QUEUES_URL}/api/v1/finish', json={'id': task['id']}) try:
if resp.status_code != 202: resp = requests.post(f'{QUEUES_URL}/api/v1/finish', json={'id': task['id']})
raise QueuesException if resp.status_code != 202:
except: raise QueuesException
print(f'Failed to finish task id={task["id"]}') except:
self.send_metric(start, success, end) print(f'Failed to finish task id={task["id"]}')
@property @property
def queue_name(self): def queue_name(self):