ORDENAR PRIORIDADES, DE FORMA TEMPORARIA.
Bom dia,
Estou montando um servidor telnet, onde outras máquinas se conectam para efetuar o envio de alertas SMS, porém preciso ordenar esse envio, por exemplo: envios de Prioridade 0, são mais importantes e precisam ser enviados antes que os de Prioridade 1, os de Prioridade 1, antes dos de Prioridade 2 e assim sucessivamente, com isso estou tendo dificuldades, não sei se a melhor forma é colocar em um arquivo temporário .txt, ou se existe uma outra forma que eu possa estar fazendo isso, pois a maior necessidade é que seja ordenado por ordem crescente, e o envio ocorre uma vez, ou seja, depois de enviado, essa linha deveria ser excluÃda.
Se alguém puder me dar uma luz, desde iá fico grato.
Abraços;
Estou montando um servidor telnet, onde outras máquinas se conectam para efetuar o envio de alertas SMS, porém preciso ordenar esse envio, por exemplo: envios de Prioridade 0, são mais importantes e precisam ser enviados antes que os de Prioridade 1, os de Prioridade 1, antes dos de Prioridade 2 e assim sucessivamente, com isso estou tendo dificuldades, não sei se a melhor forma é colocar em um arquivo temporário .txt, ou se existe uma outra forma que eu possa estar fazendo isso, pois a maior necessidade é que seja ordenado por ordem crescente, e o envio ocorre uma vez, ou seja, depois de enviado, essa linha deveria ser excluÃda.
Se alguém puder me dar uma luz, desde iá fico grato.
Abraços;
O envio tem que ser imediato ao recebimento das mensagens no servidor, ou é de x em x unidades de tempo? Explique como vc está estruturando essa parte de recebimento das mensagens.
Preciso ordenar da seguinte forma..
Os alertas de prioridade 0 terão que ser enviados imediatamente, os de prioridade 1 somente quando não houver alertas de prioridade 0 na fila, por isso eventualmente irão ocorrer problemas de prioridade 1 e após os de prioridade 0, por isso preciso ordenar de forma crescente, para que o arquivo .bat com o comando para enviar SMS seja chamado antes dos que estão com prioridade 1.
Hoje apenas o cliente se conecta ao servidor telnet e chama o .bat referente a sua prioridade, porém ocorre que eventos de prioridade 5 por exemplo, são enviados antes dos que possuem prioridade 0,1,2...
Por isso minha dúvida, não sei como fazer essa ordenação, se através de arquivos .txt ou temporários.
Obrigado
Os alertas de prioridade 0 terão que ser enviados imediatamente, os de prioridade 1 somente quando não houver alertas de prioridade 0 na fila, por isso eventualmente irão ocorrer problemas de prioridade 1 e após os de prioridade 0, por isso preciso ordenar de forma crescente, para que o arquivo .bat com o comando para enviar SMS seja chamado antes dos que estão com prioridade 1.
Hoje apenas o cliente se conecta ao servidor telnet e chama o .bat referente a sua prioridade, porém ocorre que eventos de prioridade 5 por exemplo, são enviados antes dos que possuem prioridade 0,1,2...
Por isso minha dúvida, não sei como fazer essa ordenação, se através de arquivos .txt ou temporários.
Obrigado
Acredito que você deve criar uma tabela com os seguintes campos:
MENSAGEM
PRIORIDADE
DATAHORA
ENVIADO
... e gravar os dados nesta tabela, para que entrem numa fila de envio.
Para mandar a mensagem, voce faz um
SELECT * FROM TABELA WHERE ENVIADO=[ô]N[ô] ORDER BY PRIORIDADE,DATAHORA
e envia sempre a mensagem para o primeiro registro retorno no select.
Após enviar a mensagem, você atualiza o campo ENVIADO para [ô]S[ô]
Para a proxima mensagem, você repete todo o processo a partir do SELECT...
MENSAGEM
PRIORIDADE
DATAHORA
ENVIADO
... e gravar os dados nesta tabela, para que entrem numa fila de envio.
Para mandar a mensagem, voce faz um
SELECT * FROM TABELA WHERE ENVIADO=[ô]N[ô] ORDER BY PRIORIDADE,DATAHORA
e envia sempre a mensagem para o primeiro registro retorno no select.
Após enviar a mensagem, você atualiza o campo ENVIADO para [ô]S[ô]
Para a proxima mensagem, você repete todo o processo a partir do SELECT...
Esses bats pra cada prioridade, eles pegam os dados de onde? BD, arquivos? Como tá a arquitetura disso aÃ?
Pessoal,
Já consegui fazer a parte de gravar a prioridade e o comando que ela deve executar no programa, e ainda ordenar.
Só o que me falta no momento é ele ler a primeira linha desse banco de dados .mbd e depois excluir, fazer uma verificação se existem mais registros e fazer o mesmo com eles, dando uma pausa de 30 segundos entre uma leitura e outra.
Espero ter sido claro.
Obrigado
Já consegui fazer a parte de gravar a prioridade e o comando que ela deve executar no programa, e ainda ordenar.
Só o que me falta no momento é ele ler a primeira linha desse banco de dados .mbd e depois excluir, fazer uma verificação se existem mais registros e fazer o mesmo com eles, dando uma pausa de 30 segundos entre uma leitura e outra.
Espero ter sido claro.
Obrigado
Tópico encerrado , respostas não são mais permitidas