Compare commits

..

48 Commits

Author SHA1 Message Date
fbc9c0e0d7 Merge pull request 'fix' (#53) from master into dev
Reviewed-on: #53
2025-06-15 02:45:52 +03:00
Egor Matveev
73c8466a50 fix
All checks were successful
Deploy Dev / Push (pull_request) Successful in 8s
Deploy Dev / Build (pull_request) Successful in 4s
Deploy Dev / Deploy dev (pull_request) Successful in 19s
Deploy Prod / Build (pull_request) Successful in 6s
Deploy Prod / Deploy prod (pull_request) Successful in 12s
Deploy Prod / Push (pull_request) Successful in 9s
2025-06-15 02:45:33 +03:00
9b2e96d401 Merge pull request 'fx' (#52) from master into dev
Reviewed-on: #52
2025-06-15 02:42:47 +03:00
Egor Matveev
c20c5546fe fx
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 17s
2025-06-15 02:42:23 +03:00
d27eed093b Merge pull request 'fix' (#51) from master into dev
Reviewed-on: #51
2025-06-15 02:33:20 +03:00
Egor Matveev
151327ae0a fix
All checks were successful
Deploy Dev / Build (pull_request) Successful in 6s
Deploy Dev / Push (pull_request) Successful in 8s
Deploy Dev / Deploy dev (pull_request) Successful in 22s
2025-06-15 02:32:47 +03:00
77fe38acc0 Merge pull request 'fix' (#50) from master into dev
Reviewed-on: #50
2025-06-15 00:17:58 +03:00
Egor Matveev
d91ae82f6e 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 18s
2025-06-15 00:17:35 +03:00
64db408144 Merge pull request 'fix' (#49) from master into dev
Reviewed-on: #49
2025-06-15 00:09:59 +03:00
Egor Matveev
46031265e0 fix
All checks were successful
Deploy Dev / Build (pull_request) Successful in 1m5s
Deploy Dev / Push (pull_request) Successful in 13s
Deploy Dev / Deploy dev (pull_request) Successful in 15s
2025-06-15 00:09:33 +03:00
bd1e26cb50 Merge pull request 'fix' (#48) from master into dev
Reviewed-on: #48
2024-12-31 02:53:25 +03:00
5102564b84 Merge pull request 'master' (#47) from master into dev
Reviewed-on: #47
2024-12-31 02:50:30 +03:00
733ab721d6 Merge pull request 'fix' (#42) from master into dev
Reviewed-on: #42
2024-12-22 23:50:21 +03:00
57c012cb44 Merge pull request 'master' (#41) from master into dev
Reviewed-on: #41
2024-12-22 23:48:35 +03:00
96eef035c5 Merge pull request 'master' (#39) from master into dev
Reviewed-on: #39
2024-12-21 19:27:36 +03:00
cbbd1462cd Merge pull request 'fix' (#37) from master into dev
Reviewed-on: #37
2024-12-08 19:42:42 +03:00
5c6142202b Merge pull request 'fix' (#36) from master into dev
Reviewed-on: #36
2024-12-08 19:40:35 +03:00
723a230ced Merge pull request 'fix' (#35) from master into dev
Reviewed-on: #35
2024-12-08 13:45:28 +03:00
c32bfad431 Merge pull request 'fix' (#34) from master into dev
Reviewed-on: #34
2024-12-08 13:43:33 +03:00
0f58ed101e Merge pull request 'fix' (#33) from master into dev
Reviewed-on: #33
2024-12-08 12:06:25 +03:00
aebaa7e546 Merge pull request 'fix' (#32) from master into dev
Reviewed-on: #32
2024-12-08 11:48:59 +03:00
80462d2a61 Merge pull request 'fix' (#31) from master into dev
Reviewed-on: #31
2024-12-08 11:36:31 +03:00
f0399196b5 Merge pull request 'fix' (#30) from master into dev
Reviewed-on: #30
2024-12-08 11:34:33 +03:00
7b806075c7 Merge pull request 'fix' (#29) from master into dev
Reviewed-on: #29
2024-12-08 11:26:22 +03:00
2eb13d9443 Merge pull request 'master' (#28) from master into dev
Reviewed-on: #28
2024-12-08 11:22:27 +03:00
49634845a1 Merge pull request 'Update daemons/mailbox.py' (#27) from master into dev
Reviewed-on: #27
2024-12-02 22:39:10 +03:00
e02646a1a2 Merge pull request 'fix' (#26) from master into dev
Reviewed-on: #26
2024-12-02 21:57:09 +03:00
1b7e8686e4 Merge pull request 'fix' (#24) from master into dev
Reviewed-on: #24
2024-11-30 13:30:19 +03:00
cf12a0dca8 Merge pull request 'types' (#23) from master into dev
Reviewed-on: #23
2024-11-30 12:59:01 +03:00
0a97e56539 Merge pull request 'fix' (#21) from master into dev
Reviewed-on: #21
2024-11-29 20:31:45 +03:00
a5d3bd08c1 Merge pull request 'fix' (#20) from master into dev
Reviewed-on: #20
2024-11-29 20:25:38 +03:00
ad74b8de7a Merge pull request 'fix' (#18) from master into dev
Reviewed-on: #18
2024-11-28 23:09:59 +03:00
05d9cdc7b1 Merge pull request 'fix' (#17) from master into dev
Reviewed-on: #17
2024-11-28 22:58:47 +03:00
a209246513 Merge pull request 'fix' (#15) from master into dev
Reviewed-on: #15
2024-11-27 16:18:17 +03:00
0922b5a4a4 Merge pull request 'fix' (#14) from master into dev
Reviewed-on: #14
2024-11-27 16:14:35 +03:00
2ee74e70ac Merge pull request 'fix' (#13) from master into dev
Reviewed-on: #13
2024-11-27 14:46:14 +03:00
da93092232 Merge pull request 'fix' (#12) from master into dev
Reviewed-on: #12
2024-11-27 11:20:53 +03:00
60b933496f Merge pull request 'fix' (#11) from master into dev
Reviewed-on: #11
2024-11-27 11:15:30 +03:00
82b99ae803 Merge pull request 'fix' (#10) from master into dev
Reviewed-on: #10
2024-11-27 11:12:37 +03:00
c8f65a0ebb Merge pull request 'fix' (#9) from master into dev
Reviewed-on: #9
2024-11-27 11:10:47 +03:00
6401a40f11 Merge pull request 'fix' (#8) from master into dev
Reviewed-on: #8
2024-11-27 04:32:35 +03:00
32197fd699 Merge pull request 'fix' (#7) from master into dev
Reviewed-on: #7
2024-11-27 04:26:41 +03:00
e69ee8767a Merge pull request 'fix' (#6) from master into dev
Reviewed-on: #6
2024-11-27 04:19:26 +03:00
54f7581657 Merge pull request 'fix' (#5) from master into dev
Reviewed-on: #5
2024-11-27 04:14:58 +03:00
c6a2710087 Merge pull request 'fix' (#4) from master into dev
Reviewed-on: #4
2024-11-27 04:11:15 +03:00
42fc5552ab Merge pull request 'fix' (#3) from master into dev
Reviewed-on: #3
2024-11-27 04:09:16 +03:00
499eed49e0 Merge pull request 'fix' (#2) from master into dev
Reviewed-on: #2
2024-11-27 04:07:49 +03:00
349df7eb17 Merge pull request 'req' (#1) from master into dev
Reviewed-on: #1
2024-11-27 04:06:16 +03:00
2 changed files with 29 additions and 29 deletions

View File

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

View File

@@ -1,9 +1,6 @@
from concurrent.futures import ThreadPoolExecutor
import datetime import datetime
import json
import os import os
import uuid from threading import Thread
import zoneinfo
import requests import requests
import time import time
@@ -20,23 +17,26 @@ class QueuesException(Exception):
class TasksHandlerMixin: class TasksHandlerMixin:
def __init__(self, *args, **kwargs): def _send_metric(self, start, success, end):
super().__init__(*args, **kwargs) try:
self.executor = ThreadPoolExecutor(max_workers=1) metric = requests.post('http://monitoring:1237/api/v1/metrics/task', json={
'timestamp': start.strftime("%Y-%m-%dT%H:%M:%S") + "Z",
def _send_metric(self, start: datetime.datetime, end: datetime.datetime, success: bool):
def send():
requests.post(f'{QUEUES_URL}/api/v1/metric', json={
'service': 'botalka', 'service': 'botalka',
'environment': stage,
'queue': self.queue_name, 'queue': self.queue_name,
'success': success, 'success': success,
'timestamp': start.strftime("%Y-%m-%dT%H:%M:%S") + "Z", 'execution_time_ms': (end - start).microseconds // 1000,
"success": success,
"execution_time_ms": (end - start).microseconds // 1000,
"environment": stage,
}) })
if metric.status_code == 202:
self.executor.submit(send) 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):
# Thread(target=self._send_metric, args=(start, success, end)).start()
self._send_metric(start, success, end)
def poll(self): def poll(self):
while True: while True:
@@ -50,24 +50,21 @@ class TasksHandlerMixin:
if not task: if not task:
time.sleep(0.2) time.sleep(0.2)
continue continue
start = datetime.datetime.now(zoneinfo.ZoneInfo("Europe/Moscow")) start = datetime.datetime.now()
try: try:
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:
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(zoneinfo.ZoneInfo("Europe/Moscow")) end = datetime.datetime.now()
if success: try:
try: resp = requests.post(f'{QUEUES_URL}/api/v1/finish', json={'id': task['id']})
resp = requests.post(f'{QUEUES_URL}/api/v1/finish', json={'id': task['id']}) if resp.status_code != 202:
if resp.status_code != 202: raise QueuesException
raise QueuesException except:
print(f'finish task with id {task["id"]}') 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"]}')
self._send_metric(start, end, success)
@property @property
def queue_name(self): def queue_name(self):