Ver Mensaje Individual
  #46  
Antiguo Hace 2 Días
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 78
Reputación: 1
Jarogo08 Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola, lo que no has de esperarte tanto para generar el registro a enviar, si realmete te tarda tanto en generar y enviar, no apures, envia cada menos, envez de esperar los 240" envia a los 210 y mientras generas cumples con los 60" o lo que te inmpongan , no has de esperar 240" para enviar.
La cronologia es , envias el primer envio del dia, antes de cumplir 240" del primer registro, poner a 0 el contador e inicializar la cuenta de 60" o lo que te pidan par impedir un n uevo envio, en el momento de generrse un registro que encolas pones a 0 el contador de envios, cuando llegue a 210", seguro que has superado los x segundos que te indican en la respuesta, cierras el xml a enviar y envias, poniendo a 0 el contador de de registros de los 210" si se genera alguno, entre tanto recuperas el tiempo de espera, lo asignas y activas el contador, vas encolando si se generan registros de alta, abono, alta de subsanacion etc... y lo mismo , al llegar a 210" del primer registro encadenado, seguro qe has superado los segundos de espera, envias y vuelves a empezar, es lioso de explicar pero sencillo de implementar.
2 contadores uno de espera minima en principio 60" que se inicializa con el tiempo de la respuesta y tiende a 0 cada segundo y otro de espera maxima que empieza en 0 al encolar el primer registro, ya sea del dia , desde inicio del SIF o desde el anterior envio, y se incrementa hasta llegar a 210" por ejemplo y una subrutina que se encarga cada segundo de decrementar el de 60" si mayor a 0 y de incrementar el de 210 si menor a 210, cuando llegues a 210" envias lo que hay encolado en la tabla que almacenas los registros a enviar y vuelves a empezar.

Nosotros lo tenemos de otra manera... es un servicio de windows que salta por defecto cada 60 segundos (controlado con el propio timer del servicio). La mayoría de las veces no habrá nada para enviar y estará saltando cada 60 segundos pero cuando sí encuentre algo entonces para el timer, envía, obtiene la respuesta, coge el valor de "TiempoEsperaEnvio" (que en las pruebas que hago siempre me devuelve 60), y vuelve a poner en marcha el timer asignándole como intervalo el valor de "TiempoEsperaEnvio".

De esta manera enviará o intentará enviar cada 60 segundos. Pero si un día la respuesta del envío dice que tenemos que esperar por ejemplo 200 segundos automáticamente el timer pasará a saltar cada 200 segundos.

No sé si alguien más lo tiene así o si le veis alguna traba!

Saludos
Responder Con Cita