Skip to main content

Esse serviço tem uma única função: enviar periodicamente para o Ozone o status geral do sistema.

São coletadas informações a respeito dos serviços, status de controladores e gateways.

Status de serviços

Alguns serviços long-running (geralmente os daemons) respondem a mensagens enviadas no tópico FACILITY/healthcheck/keepalive. Quando mensagens são recebidas nesse tópico, o serviço atualiza a tabela jobstatus dizendo basicamente "eu, serviço XYZ, estou vivo às 10h34m10s".

O JobStatusUpdater coleta informações da tabela jobstatus.

Status de controladores

Toda vez que um controlador envia uma mensagem de keepalive, a coluna conLastOnline da tabela controladores referente ao controlador que enviou a mensagem é atualizada.

Essa informação + eventuais metadata do controlador (que pode conter algumas informações interessantes, mas depende do modelo/versão) são coletadas pelo JobStatusUpdater.

Status de gateways

Toda vez que um gateway envia uma mensagem de keepalive é atualizado um cache dizendo não apenas qual gateway "esteve-online-quando", mas também o status de comunicação com cada um dos dispositivos administrados pelo gateway, algo como "facial 01 está online, facial 02 está offline, etc...".

Essa informação é coletada pelo JobStatusUpdater

Envio para o Ozone

Com todas essa informações coletadas e transformadas em um JSON, seleciona-se uma estratégia para fazer o envio para o Ozone:

  1. se o sistema é SaaS, é feito o envio através de um broker MQTT do Ozone.

  2. se o sistema é OnPremises, é feito o envio através de uma API MQTT do Ozone (mais garantido e não expõe credenciais MQTT).

Essas informações são coletadas/enviadas a cada 60 segundos.