Compare commits

..

52 Commits

Author SHA1 Message Date
08bc931a5a Merge pull request 'master' (#57) from master into dev
Reviewed-on: #57
2025-06-15 03:30:33 +03:00
Egor Matveev
5c1418ddd8 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 14s
2025-06-15 03:30:04 +03:00
Egor Matveev
357ab5576f fix
All checks were successful
Deploy Prod / Build (pull_request) Successful in 5s
Deploy Prod / Push (pull_request) Successful in 8s
Deploy Prod / Deploy prod (pull_request) Successful in 18s
2025-06-15 03:22:00 +03:00
Egor Matveev
d45e8c8a35 fix
All checks were successful
Deploy Prod / Build (pull_request) Successful in 4s
Deploy Prod / Push (pull_request) Successful in 8s
Deploy Prod / Deploy prod (pull_request) Successful in 10s
2025-06-15 03:14:18 +03:00
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
3 changed files with 33 additions and 29 deletions

View File

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

View File

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

View File

@@ -1,9 +1,6 @@
from concurrent.futures import ThreadPoolExecutor
import datetime
import json
import os
import traceback
import uuid
import zoneinfo
import requests
import time
@@ -16,28 +13,33 @@ else:
QUEUES_URL = 'http://queues:1239'
executor = ThreadPoolExecutor(max_workers=1)
class QueuesException(Exception):
...
class TasksHandlerMixin:
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.executor = ThreadPoolExecutor(max_workers=1)
def _send_metric(self, start: datetime.datetime, end: datetime.datetime, success: bool):
def send():
requests.post(f'{QUEUES_URL}/api/v1/metric', json={
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,
'timestamp': start.strftime("%Y-%m-%dT%H:%M:%S") + "Z",
"success": success,
"execution_time_ms": (end - start).microseconds // 1000,
"environment": stage,
'execution_time_ms': (end - start).microseconds // 1000,
})
self.executor.submit(send)
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):
while True:
@@ -51,25 +53,21 @@ class TasksHandlerMixin:
if not task:
time.sleep(0.2)
continue
start = datetime.datetime.now(zoneinfo.ZoneInfo("Europe/Moscow"))
start = datetime.datetime.now().astimezone(zoneinfo.ZoneInfo("Europe/Moscow"))
try:
print(f'process task with id {task["id"]}, attempt {task["attempt"]}')
self.process(task['payload'])
success = True
except Exception as exc:
print(f'Error processing message id={task["id"]}, payload={task["payload"]}, exc={exc}')
traceback.print_stack()
success = False
end = datetime.datetime.now(zoneinfo.ZoneInfo("Europe/Moscow"))
if success:
try:
resp = requests.post(f'{QUEUES_URL}/api/v1/finish', json={'id': task['id']})
if resp.status_code != 202:
raise QueuesException
print(f'finish task with id {task["id"]}')
except:
print(f'Failed to finish task id={task["id"]}')
self._send_metric(start, end, success)
end = datetime.datetime.now().astimezone(zoneinfo.ZoneInfo("Europe/Moscow"))
try:
resp = requests.post(f'{QUEUES_URL}/api/v1/finish', json={'id': task['id']})
if resp.status_code != 202:
raise QueuesException
except:
print(f'Failed to finish task id={task["id"]}')
self.send_metric(start, success, end)
@property
def queue_name(self):