driver_tsc/driver/notifier.py

57 lines
1.2 KiB
Python

import requests
import time
import os
URL_ERR = 'tscprinter/errore/'
URL_EVENT = 'tscprinter/evento/'
URL_RESPONSE = 'tscprinter/risposta/'
URL_HELLO = 'tscprinter/driver_acceso/'
django_addr = ("http://{}:{}/"
.format(os.getenv('DJANGO_HOST', '127.0.0.1'),
os.getenv('DJANGO_PORT')))
def notifier(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:
logger.debug("django irraggiungibile. aspetto 2 sec...")
time.sleep(2)
print(e)
def send_response(queue_out, ip, command, data):
resp= {
'ip': ip,
'comando': command,
'dati': data
}
msg = {
'url' : URL_RESPONSE,
'msg': resp
}
print(f"Mando Risposta: {msg}")
queue_out.put(msg)
def send_event(queue_out, ip, connected, error, warning):
msg = {
'ip': ip,
'connected': connected,
'error' : error,
'warning': warning
}
print(f"Mando Evento: {msg}")
queue_out.put(msg)
def send_hello(queue_out):
queue_out.put({
'url': URL_HELLO,
'msg': {}
})