From 18032bb712a313b4d46a4a5cd387e2a04468fd6a Mon Sep 17 00:00:00 2001 From: Dev PC Date: Sun, 3 Aug 2025 18:04:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D0=BF=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D0=BA=D1=83=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D1=88?= =?UTF-8?q?=D0=B8=D1=85=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- asterisk_ami.py | 18 +++++++++++++++--- check_pending.py | 14 -------------- check_pending.sh | 1 - 3 files changed, 15 insertions(+), 18 deletions(-) delete mode 100644 check_pending.py delete mode 100755 check_pending.sh diff --git a/asterisk_ami.py b/asterisk_ami.py index dbab6c3..c38a536 100644 --- a/asterisk_ami.py +++ b/asterisk_ami.py @@ -1,6 +1,5 @@ import asyncio from datetime import datetime -import os import socket import aiofiles import call_handler @@ -38,6 +37,8 @@ async def full_log(event): async def ami_listening(): + callhandler = call_handler.CallHandler() + # процедура регулярной проверки соединения async def check_connection(): while True: @@ -53,6 +54,18 @@ async def ami_listening(): conn_check_task = asyncio.create_task(check_connection()) conn_check_task.add_done_callback(lambda t: ami_listening() if t.result() else None) + # запуск check_pending ежедневно в 23:00 + async def daily_check_pending(): + while True: + now = datetime.now() + if now.hour == 23 and now.minute == 0 and now.second < 5: + await callhandler.check_pending() + await asyncio.sleep(60) + else: + await asyncio.sleep(1) + + daily_check_pending_task = asyncio.create_task(daily_check_pending()) + while True: try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) @@ -75,8 +88,6 @@ async def ami_listening(): events_action = "Action: Events\r\nEventMask: on\r\n\r\n" send_action(s, events_action) - callhandler = call_handler.CallHandler() - try: while True: event = send_action(s, "") @@ -87,6 +98,7 @@ async def ami_listening(): except (KeyboardInterrupt, SystemExit): logging.info("Exiting...") s.close() + daily_check_pending_task.cancel() except ConnectionResetError: logging.warning("Connection reset. Restarting...") await ami_listening() diff --git a/check_pending.py b/check_pending.py deleted file mode 100644 index 24d3339..0000000 --- a/check_pending.py +++ /dev/null @@ -1,14 +0,0 @@ -import asyncio -import call_handler - - -callhandler = call_handler.CallHandler() - - -async def mailn(): - await callhandler.check_pending() - return - - -if __name__ == "__main__": - asyncio.run(mailn()) diff --git a/check_pending.sh b/check_pending.sh deleted file mode 100755 index fda6749..0000000 --- a/check_pending.sh +++ /dev/null @@ -1 +0,0 @@ -/medods_crz/.venv/bin/python /medods_crz/check_pending.py \ No newline at end of file