Nueva pregunta

Pregunta:

Fecha: 24-08-2020 08:00:52 (En Español)

Leo 9000 registros y por cada uno accedo a wsdl (sopa) para buscar y traerme un qr. pero luego de unos registros tira error de conexión[Resuelta]

leo un archivo de texto de 9000 registros y por cada registro accedo (sopa/wsdl) para traerme un qr correspondiente a cada uno de los registros. Luego de procesar 10% aproximadamente, da error.
Ya modifique php.ini para manejar los tiempos. pero no encuentro la vuelta.
Etiquetas: API - NuSOAP - PHP Avanzado - Pregunta - SOAP - SoapClient - WAMP Votos: 0 - Respuestas: 15 - Vistas: 4 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 24-08-2020 12:45:27 Hola Gustavo,
    Podrías compartir el mensaje de error?
      Votos: 0 - Link respuesta
     
  • Fecha: 24-08-2020 13:48:39 como veras estoy recuperando un qr del sitio de E-pagos.... procesa correctamente 700 registros y empieza a colgarse

    Token: 6b3f8a84484e1a1bacb8c47d0fe2a72c
    Linea a Grabar definitiva es: 84112;84113; Partida: 0000410252 -
    94.08%
    Token: d475d8ed97c60a6c7689c69a2a9a2410
    Linea a Grabar definitiva es: 84114;84115;84116; Partida: 0000410264 -
    94.53%
    Token: 618ecf74a4073a26ab4c1907f0923845
    Linea a Grabar definitiva es: 84117;84118;84119; Partida: 0000410275 -
    94.97%


    Warning: SoapClient::SoapClient(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known in /Applications/XAMPP/xamppfiles/htdocs/pruebas/epagos_api.class.php on line 75

    Warning: SoapClient::SoapClient(https://sandbox.epagos.com.ar/wsdl/index.php?wsdl): failed to open stream: php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known in /Applications/XAMPP/xamppfiles/htdocs/pruebas/epagos_api.class.php on line 75

    Warning: SoapClient::SoapClient(): I/O warning : failed to load external entity "https://sandbox.epagos.com.ar/wsdl/index.php?wsdl" in /Applications/XAMPP/xamppfiles/htdocs/pruebas/epagos_api.class.php on line 75

    Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://sandbox.epagos.com.ar/wsdl/index.php?wsdl' : failed to load external entity "https://sandbox.epagos.com.ar/wsdl/index.php?wsdl" in /Applications/XAMPP/xamppfiles/htdocs/pruebas/epagos_api.class.php on line 75
      Votos: -1 - Link respuesta
     
  • Fecha: 25-08-2020 05:12:14 ¿Probaste hacer un cURL a https://sandbox.epagos.com.ar/wsdl/index.php?wsdl?

    Podría ser que haya algún registro específico que tenga mal el link... ¿siempre te da error al procesar el mismo?

    Otro tema que podría ser es que el sandbox tenga un límite de cantidad de consultas... tal vez deberías espaciar los requests
      Votos: 0 - Link respuesta
     
  • Fecha: 25-08-2020 07:50:33 probe el cURL y funciona. de hecho procesa gran cantidad de registros y después da el error.
    lo corri sobre un xampp y también sobre un linux con apache y da también error.

    Hay algo en openssl o algo así para manejar tiempos y/o certificados???
    hable con la gente del servidor y lo único que vence es el token, pero yo saco un token para cada registro.

    agradezco tu ayuda. Si se te ocurre alguna otra cosa ak estoy!!!!!!! debo terminar esto antes de fin de mes.

    Gracias
      Votos: 0 - Link respuesta
     
  • Fecha: 26-08-2020 06:36:24 ¿Verificaste si siempre se frena en el mismo registro?   Votos: 0 - Link respuesta
     
  • Fecha: 26-08-2020 07:09:26 Se detiene aproximadamente a los 5 minutos de proceso. Estoy buscando localmente algún parámetro que frene sockets de comunicación. los parámetros max_execute_time de php ya los modifique. pero sigue el problema   Votos: 0 - Link respuesta
     
  • Fecha: 27-08-2020 06:21:46 Ok... eso puede darte una idea de workaround al menos... podrías hacer el procedimiento en batches más chicos, guardar algún indicador de hasta donde llegaste y retomar desde ahí hasta finalizar.

    Tal vez un cronjob que intente cada 5 minutos sacar otro lote
      Votos: 0 - Link respuesta
     
  • Fecha: 27-08-2020 10:44:27 tengo que procesar 80000 registros. seria muy tedioso hacer lotes de 600 registros.
    Tiene que haber algo que me de una idea para encontrar el error.
    Será que soap me rechaza por algún motivo?
    Será el wsdl que tiene una cota de request por tiempo??? aunque lo he espaciado con sleep(30) cada 400 registros , el error sigue. Socorroooooooooooo
      Votos: 0 - Link respuesta
     
  • Fecha: 28-08-2020 06:05:06 Entiendo. Revisando el error que publicaste veo algo que no entiendo... ¿estás creando un cliente nuevo para cada request?   Votos: 0 - Link respuesta
     
  • Fecha: 28-08-2020 09:17:37 Te cuento. Creo que ya lo solucioné. El problema estaba en dos partes. Velocidad y cantidad de request al wsdl en corto tiempo, eso lo solucione c on sleep cada 600 registros. Por otro lado por algún motivo que no descubrí, la librería nusoap para php tiene una función get_url, que en algún momento del proceso no puede obtener la dirección del wsdl y allí se produce el error. Fue difícil, pero reemplace esa función por la dirección estática y el problema parece haberse solucionado. agradezco tu interés en intentar solucionarlo, y si puedo colaborar en algo, ak estaré. Gustavo   Votos: -1 - Link respuesta
     
  • Fecha: 31-08-2020 16:36:50 Buenísimo que lo hayas resuelto :)

    ¿Por qué usaste NuSoap? ¿No te alcanzaba por SoapClient?

    Igual no entiendo por qué necesitás consultar el WSDL más de una vez...
      Votos: 1 - Link respuesta
     
  • Fecha: 31-08-2020 17:43:05 saque Nusoap y me quede solo con las orifginales de php. debo obtener un token por cada registro, por eso la cantidad de consultas   Votos: 1 - Link respuesta
     
  • Fecha: 31-08-2020 20:05:41 ahora lo que sucede es que fgetcsv me saltea lineas del archivo. puede ser que un archivo grande no pueda leer alguna linea y la saltee???   Votos: 0 - Link respuesta
     
  • Fecha: 01-09-2020 06:07:12 mmm, qué raro... podría ser que alguna línea no tenga el formato adecuado...

    ¿Las líneas que "saltea" son siempre al final del archivo?
      Votos: 0 - Link respuesta
     
  • Fecha: 06-09-2020 04:15:20 Les cuento, que logre solucionarlo. El problema era que una librería que recibía como parámetro la dirección de conexión al wsdl, por algún motivo que desconozco, era la que producía el error, así que puse fija esa dirección y problema solucionado.   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión