Estou trabalhando em um sistema de emissor de Nfe, não participei da sua construção então não entendo muito da regra de negócio e também sou inexperiente com webservice.
A problematica é essa regra de validação que eu vou por abaixo:
“As empresas que construírem um aplicativo que se mantenha em “loop” permanente de
consulta a este Web Service, devem aguardar um tempo mínimo de 3 minutos entre cada consulta, evitando sobrecarregar desnecessariamente os servidores da SEFAZ.”
tenho um método que protocola essa comunicação , ele é chamado toda vez que entro na Home do Sistema, tenho que fazer com que ele entre em um Loop e que espere sempre 5 minutos antes de consultar novamente, mesmo se eu atualizar a página.
Não tenho noção de como fazer isso, me deram a Ideia de trabalhar com Threads, mas não conheço muito .
Esta regra de intervalo é por IP ou por certificado A1? Tipo IP x pode fazer de 5 em 5 minutos request ou p/ cada certificado A1 (Empresa) o interval de 5 minutos por request?
Esse metodo é chamado quando estou consultando o status da Sefaz, só quero que ele não seja chamado toda vez que eu voltar pra página , e sim só depois de 5 minutos que chamei pela ultima vez.
RaulCrash
Se for por certificado vc pode fazer este controle na sessão do usuário mesmo e toda vez que chamar os serviços vc atribui a hora que foi consultado, e antes do cara fazer outra vc valida se a hora que ele está solicitando está no intervalo da ultima requisição bem sucedida.
Isaiaslima15
Bom, eu acabei usando o Singleton para que a instancia ficasse sendo a mesma durante esse tempo, agora estou tentando encontrar uma forma de pegar os minutos de vida da minha instancia e quando ela for maior ou igual a três minutos a instancia ficar Null.
Mas o jeito que você falou parece mais simples e menos propenso a erros. obrigado.