Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/02/2018, 13:35
Avatar de berkeleyPunk
berkeleyPunk
 
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Pregunta Respuesta: La mejor forma de trabajar con grandes cantidades de información

Cita:
Iniciado por ocp001a Ver Mensaje
...En mi hosting, donde requiero hacer procesos realmente largos de importación de datos, lo tenemos a 30 minutos.
Ah! 30 minutos! ¿Cuál es tu hosting y qué plan tienes?

Cita:
Iniciado por ocp001a Ver Mensaje
...Sin embargo, ya que imagino no te permiten aumentar el tiempo de ejecución, te recomendaría detallar un poco el proceso, por si es posible optimizarlo.
1) En efecto, no me permiten aumenarlo, ya que es un servidor compartido.
2) Ok, va una idea general

Tiendanube = TN
PipeDrive = PD.

Tiendanube es una plataforma de comercio electrónico y Pipedrive es un CRM. Ambos tienen API's.
La idea general es pasar a PD toda la información de los clientes TN, y mantener actualizada la información: si un cliente nuevo se registra, se crea un registro en PD; si un cliente logueado en TN hace un comentario en la forma de contacto, ese comentario va a parar al registro PD de ese cliente. Con las compras es lo mismo..., con todo, prácticamente.

3) Ahora, qué hace el script:
  1. Cada vez que se ejecuta el script, éste se conecta a las API's de dichas plataformas, saca la info y genera varios arrays: uno para los clientes de TN, otro para las compras de TN, y lo mismo respecto de PD.
  2. Una vez que tengo todos los arrays que necesito, itero sobre el de clientes TN y a cada paso voy contrastando si la misma info está en los arrays con la info de PD. Dependiendo el caso, el script actualiza y/o crea esa info en PD.

4) Lo único que se me ocurre para optimizar todo.
  1. Lo que se me ocurre es dividir el script en varios scripts independientes, que se ejecuten con completa independencia unos de otros. De tal modo que el mismo script no genere todos los arrays de una vez, ya que se tarda mucho.
  2. Cada uno de esos archivos independientes creará un archivo jSON con la info de los arrays que comentaba antes.
  3. Así, contrastar la info entre TN y PD, no se realizará en la misma ejecución de un solo script, sino en otro tiempo, ya que será otro script que lo haga. De esta forma, el script que contraste la info no tendrá necesidad de conectarse a las API's y perder tiempo en recuperar la info de TN y PD, ya que la info ya estará disponible en los archivos jSON.
Saludos

Última edición por berkeleyPunk; 07/02/2018 a las 13:46