Ir para o conteúdo

 Voltar a SGA LIVRE De...
Tela cheia

Colaboração: Implementação de delay entre a chamada de uma senha e outra

17 de Dezembro de 2009, 9:32 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 34 vezes

Prezados,

primeiramente gostaria de parabeniza-los pelo sistema desenvolvido, o SGA é muito funcional e a arquitetura usada é muito flexivel quando é necessário realizar alguma customização.

Fiz uma pequena customização no controlador de painéis para atender um requisito solicitado pelos usuários dos sistema na minha instituição e gostaria de compartilhar com a comunidade.

Contextualização do "Problema"

Quando 2 ou mais usuários acionam o botão "Chamar Próximo" em sequência a última senha enviada pelo contrador de painéis sobrepõe a primeira no módulo painel, aparentemente isso não seria um problema porque depois de 5 segundo o atendente pode acionar o botão "Chamar Novamente", porém os usuários do sistema acharam interessante além de implementar o histórico de senhas que foi uma contribuição do Leornardo Neto existir um delay entre as chamadas de novas senhas.

Solução  Adotada

  • Foi adicionado a seguinte propriedade no arquivo server.conf:

#Intervalo usado para esperar o envio da senha para o painel
#Tempo deve ser especificado em milisegundos (1000 milisegundos = 1 segundo)
intervaloEnvio = 5000

  • Alteração da Classe ConfigManager.java

Criação do atributo private int sentInterval;

Trecho de código adicionado para tratar o valor do atributo sentInterval:

        sentInterval = Integer.parseInt(config.getProperty("intervaloEnvio"));
         
        if(sentInterval < 1){
            LOG.warning("O valor da config (intervaloEnvio="+sentInterval+") não permitido, apenas valores maiores que zero são permitidos. Forçando o valor para 1.");
            sentInterval = 1;
             
        }


  • Alteração na classe ServerMsg.java

As Alterações no método envia() estão em negrito logo abaixo:

public void envia() {
        LOG.fine("SEND: "+this);
        UDPServer.getInstance().envia(this);
         
        //O código abaixo é responsável por retardar o envio da senha para o painel
        //O Objetivo é evitar que uma senha sobreponha a outra
        try {
            Thread.sleep(ConfigManager.getInstance().getSentInterval());
        } catch (InterruptedException e) {
           LOG.error("InterruptedException: "+e.getMessage());
        }

    }

Uma sugestão que gostaria de deixar é migrar as aplicações para o MAVEN, uma vez que seu uso facilita o desenvolvimento remoto e seria uma maneira mais tranquila de versionar os arquivos .jar sem precisar coloca-los no SVN.

 

[]'s

Jk@iros

Autor: jkairos jkairos


33 comentários

  • C356886d67845ff4e91bd7fc0ee13654?only path=false&size=50&d=404Anderson Roberto Pereira(usuário não autenticado)
    21 de Dezembro de 2009, 17:01

     

    Jk@iros,

    agradecemos a colaboração.

    Entretanto, numa situação de larga escala (muitos painéis distribuídos) esse delay global vai gerar atrasos no envio da mensagem, e enfileirar as senhas no controlador.

    Uma implementação de configuração de delay no próprio painel de senhas resolveria essa questão de forma individualizada.

    Ou seja, no painel de senhas poderia ter uma opção do tipo widget spinbox para selecionar o tempo de intervalo.

    Se puder ajudar também nesse sentido, seria realmente muito útil.

    Aguardo seu patch !

    • 0cbe7711b7d34b348c87af6a700f30e3?only path=false&size=50&d=404Saulo Araújo(usuário não autenticado)
      4 de Julho de 2012, 10:00

       

      Adicionei no métodoexibir(String _msgEspecial, String _guiche,
                  String _numeroGuiche, String _senha) da classe Web.java do Monitor as seguintes linhas:

        try
                {
                Thread.sleep(4000); 
               
                }catch (InterruptedException ie)
                {
                System.out.println(ie.getMessage());
                }

       

      É na essência a mesma idéia citada aí em cima. Aqui funcionou! Abraço a todos!

Encontro da comunidade SGA Livre no FISL11

13 de Julho de 2010, 15:41, por Desconhecido

Prezados,



Em uma semana, SGA Livre ultrapassa mil usuários

10 de Novembro de 2009, 19:19, por Desconhecido

Em apenas uma semana de funcionamento, a comunidade do Sistema de Gerenciamento do Atendimento (SGA Livre) do Portal Software Público atingiu a marca de mil usuários. O lançamento e a disponibilização do software livre foi feito no último dia 22, durante a 6ª Conferência Latino-Americana de Software Livre (Latinoware 2009), que ocorreu em Foz do Iguaçu (PR).



Nova versão da aplicação Web 1.0.2

4 de Novembro de 2009, 17:05, por Desconhecido

Disponível nova versão da aplicação web (1.0.2). Corrige uma falha na impressão da senha, no módulo de Triagem.



Nova versão da aplicação Web 1.0.1

29 de Outubro de 2009, 12:56, por Desconhecido

Disponível nova versão da aplicação Web do SGA LIVRE, que corrige: