From c29081e4c18e8eb062d6c7e0b8036a75b5fb5928 Mon Sep 17 00:00:00 2001 From: Emanuele Date: Thu, 19 Mar 2020 13:58:53 +0100 Subject: [PATCH] aggiunto notifier e comandi --- driver/main.py | 14 +++++++------- driver/notifier.py | 15 +++++++++++++++ driver/tsc_manager.py | 12 ++++++++---- 3 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 driver/notifier.py diff --git a/driver/main.py b/driver/main.py index bd18de8..2101469 100644 --- a/driver/main.py +++ b/driver/main.py @@ -13,7 +13,7 @@ import sys import logging import os from waitress import serve -from driver import tsc_manager +from driver import tsc_manager, notifier #inizializza ascoltatore di Flask app = Flask(__name__) @@ -66,14 +66,14 @@ if __name__ == '__main__': django_addr = ("http://{}:{}/" .format(os.getenv('DJANGO_HOST', '127.0.0.1'), os.getenv('DJANGO_PORT'))) - #t_notify_django = threading.Thread(target=notify_django.notifier, - # args=[django_addr, queue_out, logger], - # daemon=True) - #t_notify_django.start() - t_print = threading.Thread(target=tsc_manager.main, + t_notify_django = threading.Thread(target=notifier.notifier, + args=[django_addr, queue_out, logger], + daemon=True) + t_notify_django.start() + t_manager = threading.Thread(target=tsc_manager.main, args=[queues_in, queue_out, queue_command, logger], daemon=True) - t_print.start() + t_manager.start() listen = "{}:{}".format(os.getenv("MARKOPRINTER_DRIVER_HOST"), os.getenv("MARKOPRINTER_DRIVER_PORT")) serve(app, listen=listen) \ No newline at end of file diff --git a/driver/notifier.py b/driver/notifier.py new file mode 100644 index 0000000..d19c225 --- /dev/null +++ b/driver/notifier.py @@ -0,0 +1,15 @@ +import requests +import time + +def notifier(django_addr, queue_out, logger): + logger.warning("Notifier started") + while True: + msg = queue_out.get(block=True) + riuscita = False + while not riuscita: + try: + requests.post(django_addr+msg['url'], json=msg['msg']) + riuscita = True + except Exception as e: + time.sleep(2) + print(e) \ No newline at end of file diff --git a/driver/tsc_manager.py b/driver/tsc_manager.py index 3b3ae01..fad79d8 100644 --- a/driver/tsc_manager.py +++ b/driver/tsc_manager.py @@ -9,13 +9,13 @@ Created on 19 mar 2020 import threading, socket, sys, queue, logging Q_TIMEOUT = 2 +URL_ERR = 'tscprinter/errore/' +URL_EVENT = 'tscprinter/evento/' def stampante(q_in, q_out, ip, ): pass - - #lancia i thread, uno per stampante def main(q_in :queue.Queue, q_out :queue.Queue, q_comm: queue.Queue, logger: logging.getLogger): queue_ip_map={} @@ -30,11 +30,15 @@ def main(q_in :queue.Queue, q_out :queue.Queue, q_comm: queue.Queue, logger: log try: comando = q_comm.get(block=True, timeout=Q_TIMEOUT) if comando['name'] == "CONNETTI": + pass elif comando['name'] == "DISCONNETTI": + pass else: - out + q_out.put({'url':URL_ERR, + 'msg':{'error':'comando inesistente'} + }) logger.error("Comando non Trovato") - except Empty: + except queue.Empty: logger.error("Coda comandi vuota") pass