¡Buenos días! Una preguntilla para los que implementáis el Verifactu como un servicio. En nuestro caso, tenemos un servicio de Windows (externo del SIF) que detecta cuando hay nuevas facturas y las envía a la AEAT. Las empresas tienen un servidor central, donde está la base de datos, el servicio y una instancia del SIF; si hay otros ordenadores en la tienda, sus instancias del SIF se conectan a la base de datos de su servidor central. Por lo tanto, hay una única base de datos y un único servicio, aunque varias instancias del SIF.
Queremos poder detectar cuando el servicio no esté corriendo para avisar a todos los usuarios del SIF que se ha parado y que debe activarse para seguir facturando. Habíamos pensado el siguiente planteamiento: cuando se inicia el servicio, se guarda en la base de datos, en un campo booleano, que el servicio está activo. Cuando se para, se guarda en ese campo que se ha parado. Esto emitiría un evento de la base de datos, lo que permitiría avisar instantáneamente el SIF.
Por otro lado, cada hora se actualizaría un campo con la fecha y hora actual, para que si por algún motivo se ha cerrado el servicio sin que haya podido avisar (se ha apagado repentinamente el ordenador, por ejemplo) se pueda mirar si ha pasado más de una hora desde la fecha guardada, lo que indicaría que también está cerrado. El SIF periódicamente (cada hora y también al realizar acciones concretas) consultaría ese campo para determinar si el servicio está abierto o no.
Este es el planteamiento que teníamos pensado para detectar si el servicio está abierto o no, pero me gustaría preguntar qué procedimiento usáis vosotros, para ver si hay alguna forma mejor de hacerlo. ¡Gracias por vuestra ayuda!
