• Suporte
  • Los turnos llamados no aparecen.

Hola. Hemos implementado Novo SGA 2.0.7 sobre Ubuntu 18.0.4

Estamos teniendo un problema con las llamadas a los turnos desde los puestos de trabajo. Tenemos 8 puestos (Boxes).

Lo que sucede es que se llama el turno con el boton de "Llamar Siguiente" pero no aparece en el PainelWeb aun luego de esperar mas de 30 segundos; entonces se vuelve a hacer clic en el boton "Llamar Siguiente" y aun asi no aparece; eso se puede repetir varias veces hasta que aparece (todo esto puede demorar hasta 2minutos). Debido a esto puede llegar a aparecer en el PainelWeb el turno numero P009 antes que el P007.

Seria algo asi desde distintos puestos (Bxes):

Box3: Llamo turno P007 --> no aparece. Se espera 30 seg.
Box1: Llamo turno P008 --> aparece y es atendido OK.
Box2: Llamo turno P009 --> no aparece. Se espera 30 seg.
Box2: Llamo turno P009 --> no aparece. Se esperan 10 seg y se llama de nuevo. --> no aparece.
Box3: Llamo turno P007 --> no aparece. Se esperan 10 seg y se lo llama de nuevo. -- no aparece.
Box2: Llamo turno P009 --> aparece y es atendido OK.
Box3: Llamo turno P007 --> aparece y es atendido OK.

En el PainelWeb se verian asi mas o menos:
P008 Box 1
P009 Box 2
P007 Box 3

Es un problema conocido? Hay alguna forma de corregirlo pronto ? Pregunto porque de no ser asi tendremos que volver a la version Novo SGA 1.5 y quisieramos evitarlo 🙁

Gracias desde ya.

Nota:

Vemos constantemente estos mensajes desde la consola (F12) del Firefox en las PCs de los clientes:

Firefox can’t establish a connection to the server at ws://novo207.dominio.tld:2020/socket.io/?EIO=3&transport=websocket. socket.io.js:2:21758
The connection to ws://novo207.dominio.tld:2020/socket.io/?EIO=3&transport=websocket was interrupted while the page was loading. socket.io.js:2:21758
[ws] connect error script.js:285:17
Firefox can’t establish a connection to the server at ws://novo207.dominio.tld:2020/socket.io/?EIO=3&transport=websocket. socket.io.js:2:21758
The connection to ws://novo207.dominio.tld:2020/socket.io/?EIO=3&transport=websocket was interrupted while the page was loading. socket.io.js:2:21758
[ws] connect error script.js:285:17
[ws] reached max attempts script.js:289:17
ws timeout, ajax polling fallback script.js:59:21
Firefox can’t establish a connection to the server at ws://novo207.dominio.tld:2020/socket.io/?EIO=3&transport=websocket. socket.io.js:2:21758
The connection to ws://novo207.dominio.tld:2020/socket.io/?EIO=3&transport=websocket was interrupted while the page was loading. socket.io.js:2:21758
[ws] connect error

En el servidor de Novo SGA 2.0.7 no hay nada escuchando en ese puerto. Es eso correcto?

netstat -ntplu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0: LISTEN 1248/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:
LISTEN 1277/apache2
tcp 0 0 127.0.0.53:53 0.0.0.0: LISTEN 873/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:
LISTEN 1191/sshd
tcp 0 0 127.0.0.1:6010 0.0.0.0: LISTEN 3034/sshd: manager@
tcp 0 0 127.0.0.1:6011 0.0.0.0:
LISTEN 9014/sshd: manager@
udp 0 0 127.0.0.53:53 0.0.0.0:* 873/systemd-resolve

    • Melhor Resposta

    La solucion que implementamos finalmente es configurar un script que lo ejecute. Buscamos que se ejecute con el usuario www-data que es bajo el usuario que corre Apache2 y por tanto Novo SGA.

    Usamos el archivo sudoers

    Ejecutamos:

    sudo visudo

    y agregamos estas lineas:

    Runas_Alias     WWW = www-data
        # Nuestro usuario es 'admin' Modificar segun corresponda
    admin ALL=(WWW:WWW) NOPASSWD: /var/www/html/novosga/bin/console

    Ahora podemos ejecutar los programas y scripts indicados con:

        sudo -u www-data /usr/bin/nohup /var/www/html/novosga/bin/console novosga:websocket start >> /tmp/WorkerMan.log &

    Una cosa que notamos es que el Websocket se 'cuelga' cada tanto, por el momento lo mejor que encontramos es reiniciar el servicio cada X minutos usando distintos script:

      $ cat /scripts/sga2_SocketIO_restart.sh
      #!/bin/bash
    
      sudo -u www-data /usr/bin/nohup /var/www/html/novosga/bin/console novosga:websocket restart >> /tmp/WorkerMan.log &
    
      echo
      sleep 3
    
      ps -ax | grep WorkerMan | grep -v grep
    
      exit 0

    En el crontab del usuario 'admin' agregamos esta entrada para reiniciarlo cada 15 minutos


     crontab -e
     # Reiniciamos cada tanto SocketIO porque esta cosa como que se tilda :(
     */15 * * * * /scripts/sga2_SocketIO_restart.sh

    En el log del sistema se vera:

     May 10 09:30:01 localhost CRON[31383]: (admin) CMD (/scripts/sga2_SocketIO_restart.sh)
     May 10 09:45:01 localhost CRON[31900]: (admin) CMD (/scripts/sga2_SocketIO_restart.sh)

La solucion que implementamos finalmente es configurar un script que lo ejecute. Buscamos que se ejecute con el usuario www-data que es bajo el usuario que corre Apache2 y por tanto Novo SGA.

Usamos el archivo sudoers

Ejecutamos:

sudo visudo

y agregamos estas lineas:

Runas_Alias     WWW = www-data
    # Nuestro usuario es 'admin' Modificar segun corresponda
admin ALL=(WWW:WWW) NOPASSWD: /var/www/html/novosga/bin/console

Ahora podemos ejecutar los programas y scripts indicados con:

    sudo -u www-data /usr/bin/nohup /var/www/html/novosga/bin/console novosga:websocket start >> /tmp/WorkerMan.log &

Una cosa que notamos es que el Websocket se 'cuelga' cada tanto, por el momento lo mejor que encontramos es reiniciar el servicio cada X minutos usando distintos script:

  $ cat /scripts/sga2_SocketIO_restart.sh
  #!/bin/bash

  sudo -u www-data /usr/bin/nohup /var/www/html/novosga/bin/console novosga:websocket restart >> /tmp/WorkerMan.log &

  echo
  sleep 3

  ps -ax | grep WorkerMan | grep -v grep

  exit 0

En el crontab del usuario 'admin' agregamos esta entrada para reiniciarlo cada 15 minutos


 crontab -e
 # Reiniciamos cada tanto SocketIO porque esta cosa como que se tilda :(
 */15 * * * * /scripts/sga2_SocketIO_restart.sh

En el log del sistema se vera:

 May 10 09:30:01 localhost CRON[31383]: (admin) CMD (/scripts/sga2_SocketIO_restart.sh)
 May 10 09:45:01 localhost CRON[31900]: (admin) CMD (/scripts/sga2_SocketIO_restart.sh)
6 dias depois

parmando o websocket server é um serviço a parte, que roda em background. A iniciação dele depende da configuração do servidor. Por isso é separado.

Entiendo. Quizas se puedan agregar las configuraciones anteriores como guia para los que lo necesiten configurar en sus nuevas instalaciones.