Compare commits

...

15 Commits

Author SHA1 Message Date
1c135352ab Merge pull request 'fix' (#79) from metric into dev
Reviewed-on: #79
2025-06-15 17:14:33 +03:00
Egor Matveev
33901b0a82 fix
All checks were successful
Deploy Dev / Build (pull_request) Successful in 5s
Deploy Dev / Push (pull_request) Successful in 9s
Deploy Dev / Deploy dev (pull_request) Successful in 17s
2025-06-15 17:13:54 +03:00
bea73c9322 Merge pull request 'fix' (#78) from metric into dev
Reviewed-on: #78
2025-06-15 17:08:46 +03:00
Egor Matveev
7b9d264ef9 fix
All checks were successful
Deploy Dev / Build (pull_request) Successful in 8s
Deploy Dev / Push (pull_request) Successful in 10s
Deploy Dev / Deploy dev (pull_request) Successful in 12s
2025-06-15 17:08:15 +03:00
0112b5c0e4 Merge pull request 'fix' (#77) from metric into dev
Reviewed-on: #77
2025-06-15 16:50:05 +03:00
Egor Matveev
a707a8b93e fix
All checks were successful
Deploy Dev / Build (pull_request) Successful in 7s
Deploy Dev / Push (pull_request) Successful in 10s
Deploy Dev / Deploy dev (pull_request) Successful in 18s
2025-06-15 16:49:40 +03:00
57669cf6bd Merge pull request 'fix' (#76) from metric into dev
Reviewed-on: #76
2025-06-15 16:46:18 +03:00
Egor Matveev
df3354a536 fix
All checks were successful
Deploy Dev / Build (pull_request) Successful in 7s
Deploy Dev / Push (pull_request) Successful in 9s
Deploy Dev / Deploy dev (pull_request) Successful in 17s
2025-06-15 16:45:51 +03:00
9a55a4f822 Merge pull request 'metric' (#75) from metric into dev
Reviewed-on: #75
2025-06-15 16:42:01 +03:00
Egor Matveev
6a8f18300b fix
All checks were successful
Deploy Dev / Build (pull_request) Successful in 7s
Deploy Dev / Push (pull_request) Successful in 9s
Deploy Dev / Deploy dev (pull_request) Successful in 11s
2025-06-15 16:40:44 +03:00
Egor Matveev
b575ba5717 fix 2025-06-15 16:40:18 +03:00
Egor Matveev
24b1d39e10 fix 2025-06-15 16:39:33 +03:00
8bd6dc2701 Merge pull request 'metric' (#74) from metric into dev
Reviewed-on: #74
2025-06-15 16:00:54 +03:00
Egor Matveev
d61c665b6c fix
All checks were successful
Deploy Dev / Build (pull_request) Successful in 8s
Deploy Dev / Push (pull_request) Successful in 10s
Deploy Dev / Deploy dev (pull_request) Successful in 15s
2025-06-15 16:00:22 +03:00
Egor Matveev
4f0114e99a fix
All checks were successful
Deploy Dev / Build (pull_request) Successful in 6s
Deploy Dev / Push (pull_request) Successful in 9s
Deploy Dev / Deploy dev (pull_request) Successful in 12s
2025-06-15 14:53:13 +03:00
2 changed files with 9 additions and 14 deletions

View File

@@ -22,7 +22,6 @@ services:
networks: networks:
- configurator - configurator
- queues-development - queues-development
- monitoring
environment: environment:
STAGE: "development" STAGE: "development"
command: mailbox command: mailbox
@@ -39,5 +38,3 @@ networks:
external: true external: true
queues-development: queues-development:
external: true external: true
monitoring:
external: true

View File

@@ -1,6 +1,8 @@
from concurrent.futures import ThreadPoolExecutor from concurrent.futures import ThreadPoolExecutor
import datetime import datetime
import json
import os import os
import uuid
import zoneinfo import zoneinfo
import requests import requests
import time import time
@@ -20,11 +22,11 @@ class QueuesException(Exception):
class TasksHandlerMixin: class TasksHandlerMixin:
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.executor = ThreadPoolExecutor(max_workers=4) self.executor = ThreadPoolExecutor(max_workers=1)
def _send_metric(self, start: datetime.datetime, end: datetime.datetime, success: bool): def _send_metric(self, start: datetime.datetime, end: datetime.datetime, success: bool):
try: def send():
resp = requests.post('http://monitoring:1237/api/v1/metrics/task', json={ requests.post(f'{QUEUES_URL}/api/v1/metric', json={
'service': 'botalka', 'service': 'botalka',
'queue': self.queue_name, 'queue': self.queue_name,
'success': success, 'success': success,
@@ -33,12 +35,8 @@ class TasksHandlerMixin:
"execution_time_ms": (end - start).microseconds // 1000, "execution_time_ms": (end - start).microseconds // 1000,
"environment": stage, "environment": stage,
}) })
if resp.status_code == 202:
print("Metric ok") self.executor.submit(send)
else:
print(f'metric not ok: {resp.status_code}')
except Exception as e:
print(f"Error sending metric: {e}")
def poll(self): def poll(self):
while True: while True:
@@ -54,7 +52,7 @@ class TasksHandlerMixin:
continue continue
start = datetime.datetime.now(zoneinfo.ZoneInfo("Europe/Moscow")) start = datetime.datetime.now(zoneinfo.ZoneInfo("Europe/Moscow"))
try: try:
print(f'process task with id {task["id"]}') print(f'process task with id {task["id"]}, attempt {task["attempt"]}')
self.process(task['payload']) self.process(task['payload'])
success = True success = True
except Exception as exc: except Exception as exc:
@@ -69,7 +67,7 @@ class TasksHandlerMixin:
print(f'finish task with id {task["id"]}') print(f'finish task with id {task["id"]}')
except: except:
print(f'Failed to finish task id={task["id"]}') print(f'Failed to finish task id={task["id"]}')
self.executor.submit(self._send_metric, start, end, success) self._send_metric(start, end, success)
@property @property
def queue_name(self): def queue_name(self):