трединг2
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
dv 2026-03-16 00:17:11 +03:00
parent c48998e085
commit b6c83a1793

View file

@ -1,7 +1,6 @@
import json import json
import logging import logging
import os import os
import queue
import threading import threading
from flask import Flask, Response, jsonify, render_template, request, stream_with_context, abort from flask import Flask, Response, jsonify, render_template, request, stream_with_context, abort
@ -20,24 +19,6 @@ from intradesk.handler import handle_webhook
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
app = Flask(__name__, template_folder=os.path.join(os.path.dirname(__file__), "templates")) app = Flask(__name__, template_folder=os.path.join(os.path.dirname(__file__), "templates"))
# ── Очередь вебхуков (последовательная обработка) ─────────────────────────────
_webhook_queue: queue.Queue = queue.Queue()
def _webhook_worker():
while True:
data = _webhook_queue.get()
try:
handle_webhook(data)
except Exception:
log.exception("Unhandled error in webhook worker")
finally:
_webhook_queue.task_done()
threading.Thread(target=_webhook_worker, daemon=True, name="webhook-worker").start()
# ── Авторизация ──────────────────────────────────────────────────────────────── # ── Авторизация ────────────────────────────────────────────────────────────────
@ -116,7 +97,7 @@ def webhook():
if not data: if not data:
return jsonify({"error": "Invalid JSON"}), 400 return jsonify({"error": "Invalid JSON"}), 400
_webhook_queue.put(data) threading.Thread(target=handle_webhook, args=(data,), daemon=True).start()
return jsonify({"ok": True}), 200 return jsonify({"ok": True}), 200