Web api C# sincronización con cliente python

Iniciado por LKI, Agosto 23, 2019, 03:18:54 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hola a todos! ¿Cómo estan? tengo una duda, espero que alguien pueda ayudarme, estoy haciendo un proyecto para la universidad en C# y python, en python tengo el programa cliente y en C# tengo desarrollada una web api servidor que recibe los pedidos del cliente y los procesa y retorna los datos solicitados.

Mi problema surge debido a que debo ejecutar varios clientes al mismo tiempo, y la web api al recibir múltiples request procesa en forma asyncrona (eso creo..) estos pedidos alterando el resultado deseado, ya que cada programa cliente debe recibir datos únicos desde la api para realizar un proceso específico y actualmente a veces se retorna el mismo cliente desde la api (obtenidos desde base de datos) a varios programas cliente python.

Dejo los códigos por si sirve para darle contexto a la pregunta:

1) Se ejecuta un archivo .bat que abre x instancias del programa cliente hecho en python:

Código: php
cd "C:\Users\mnn\Desktop\workspace"

start py cliente.py

start py cliente.py

start py cliente.py

.....

pause


2) Cada programa cliente llama a la web api en espera de datos únicos que utiliza para hacer su proceso:


3) La web api en c# recibe la request obtiene los datos (desde una base de datos sql server) de un cliente único que no está siendo utilizado por ningún programa cliente, asocia (inserta los dos id en una tabla de sql server) el id único del programa cliente python con el id único del cliente obtenido en la base de datos y retorna los datos del cliente. (Este es el paso que falla ya que la web api al procesar las request al mismo tiempo devuelve los mismos datos de un cliente a varios programas cliente python) (El código esta simplificado no se ven las querys por ejemplo ya que la idea es mostrar el flujo de llamadas de cliente a web api y de web api a base de datos y retorno de datos al cliente python)


Adjunto Log mostrando el resultado no deseado, es decir, procesamiento asyncrono (foto)



Espero haber podido ser claro!!

Saludos!
Ser mejor cada día es mi meta

=LKI=