entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Consumir web service .net

Estoy consumiendo un webservice (desconozco en que lenguaje está desarrollado).

Mi problema es el siguiente, necesito consumir unas 100.000 en un periodo corto de tiempo.

Como puedo optimizar al máximo mi aplicación para que este proceso se realice lo más rápido posible.

Estoy usando multihilo, pero aún así no consigo grandes resultados.

3 Respuestas

1voto

sirhavoc Puntos460

No puedes, por tu lado ya haces lo posible.

Hay 3 posibilidades:

  • Encola tus peticiones y poco a poco ves procesándolas usando multi-hilo, supongo que es lo que haces.
  • Que en el lado webservices te hagan una función que permita pasar 1000 peticiones de golpe y te den los 1000 resultados de golpe
  • Que en el lado del webservice mejoren el proceso y si no pueden, que pongan más máquinas con el webservice (si tienes 2 URL's irás el doble de rápido)

0voto

victor_montes_cabani comentado

Hola, había pensado en usar el metodo asíncrono del webservice. Pero no tengo claro su utilización y necesitaría algún ejemplo. Ahora mismo lanzo la consulta al webservice y hasta que no me devuelve el resultado no paso al siguiente registro del conjunto de consultas.

0voto

sirhavoc comentado

Aunque sea asíncrono, no vas a mejorar nada si no cambian nada desde el otro lado.

  • Síncrono: Haces petición y esperas resultado (porque ha sido diseñado así)
  • Asíncrono:
    • Haces petición y te devuelve instantáneamente un identificador, luego más adelante llamas con ese identificador usando otra función y te retorna el resultado.
    • Haces peticición y te devuelve un ok (tiene la petición), luego os intercambiais los roles, el servidor hace de cliente y te llama a tí (que tú haces de servidor) y recoges el resultado

Como ves, hacerlo asíncrono implica trabajo del lado del webservice y un cambio profundo del protocolo. Sigues necesitando que mejoren su velocidad o pongan más servidores.

0voto

victor_montes_cabani comentado

Muchas gracias, intentaré que mejoren el webservice.

1voto

webSkarte Puntos160

Hola, y por que no mirar primero del lado del WebService, es decir ellos te garantizan la velocidad y el procesamiento rápido de la información, por que por mas que tu hagas en tu desarrollo y si el WebService es lento, vas a tener muchos problemas.

2votos

binamonk Puntos3790

Si el webservice no es tuyo y el proveedor del mismo no pueden mejorar la velocidad del mismo, deberias de evaluar que tan frecuentemente cambia la información y en base a eso hacer un cache para que la información que no haya sido actualizada todavia la obtengas del cache y la que ya necesite ser actualizada la obtengas del webservice y la guardes en el cache en lo que necesite actualizacion.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


Actividad Reciente

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta