catch Internal Server Error

8 views
Skip to first unread message

@gr-sinatra

unread,
Oct 5, 2017, 8:57:36 AM10/5/17
to rubysur
Hola Gente,

Necesitaría saber si existe alguna forma de "Catchear" un Internal Server Error

Básicamente cuando solicito el CAE por WebService WSFE1 a AFIP en algunos "raros" casos demora demasiado y el usuario obtiene un "Internal Server Error" 

A pesar de eso la solicitud de obtención de CAE se completa Ok del lado del Servidor de AFIP con lo cual se genera un número de CAE internamente pero que de mi lado nunca pude obtener.

Mi idea seria poder realizar alguna acción antes de obtener el "Internal Server Error" solo que no encuentro como "catchearlo" ya que si bien la función ya está dentro de un CATCH no llega a enterarse.

Joaquín Vicente

unread,
Oct 5, 2017, 10:56:03 AM10/5/17
to rub...@googlegroups.com
Si tu aplicación consume servicios externos y solés tener timeouts consumiendo estos servicios, lo mejor que podés hacer es delegar esto a otro proceso (y no al que atiende el request de tu usuario).
Ej:
1) Tu usuario envía el request con todos los datos. Tu app toma esta info y levanta otro proceso (o pone un msg en una cola para que otro proceso lo tome) que se encarga de solicitar el CAE a la AFIP. Al usuario le devolvés un mensaje de "procesando..."
2) Tu otro proceso toma los datos y consulta a la AFIP por el CAE. Este proceso no te va a dar timeout (si el request se hace muy largo si, pero no le genera un error 500 a tu usuario). Cuando vuelve la info, guardás todos los datos en tu BD.
3) El browser puede consultar a otro endpoint si el CAE ya fue generado (se puede quedar esperando con un loop en JS)





--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

@gr-sinatra

unread,
Oct 5, 2017, 2:09:31 PM10/5/17
to rubysur
Ah perfecto, muchas gracias.

A ver si entendí bien :

1) Cada solicitud de CAE la envio a un proceso A que la pone en una cola y le deja al usuario el mensaje de "procesando..."
 
2) Tengo un proceso B que cada n segundos solicita el CAE al WS de todo lo que este pendiente en esa cola una única vez (si da Time out o no no me importa)

3) Tengo un proceso C que consulta en el WS de AFIP si lo que está en la cola ya tiene CAE en caso de que no lo tenga sigue consultando hasta que obtiene el CAE y recién ahi guardo el comprobante con el número de CAE sino sigo consultando n veces

Pregunta : Todo esto va a suceder en cuestión de segundos porque el usuario va a estar esperando el resultado favorable para poder pasar al siguiente comprobante, si justo el WS de AFIP directamente no funciona va a dar un timeout en el proceso de consulta C, en ese caso deberia definir un límite de tiempo máximo para las consultas ?
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages