[pyar] Hola Lista!

Andrés Ramírez andres.ramirez.miori en gmail.com
Vie Feb 24 17:37:41 ART 2017


No me refiero a un tema de alta demanda. Si vos tenés una función del tipo

def insertar_nuevo_dato (dato):
    se_puede_agregar = false
    se_puede_agregar = analizar_colisiones (dato)
    if se_puede_agregar:
        ORM....insertar_dato ()
    else:
        Hacer algo

Si luego de ejecutarse en true la línea
se_puede_agregar = analizar_colisiones (dato)
Alguien en paralelo hace un insert en la base, cuando tu programa haga la
parte del insert lo que tenés en la variable se_puede_agregar ya no es
válido


El 24 feb. 2017 4:21 PM, "Nicolás Adamo" <nicoadamo en gmail.com> escribió:

Buen punto. Lo pensé en su momento y opiné que si llegan varias consultas
en simultáneo y el server demora en ejecutarlas, se tiene que crear una
cola de trabajos que evite que el sistema colapse.
Pero para llegar a eso me falta mucho... :P

On Fri, Feb 24, 2017 at 9:09 PM Andrés Ramírez <andres.ramirez.miori en gmail.
com> wrote:

> Lo van a usar múltiples usuarios al mismo tiempo?. Si los inserts pueden
> venir de distintos lados al mismo tiempo también tenés que pensar en
> lockear la tabla, porque entre el análisis y el insert puede cambiar
>
> El 24 feb. 2017 4:05 PM, "Nicolás Adamo" <nicoadamo en gmail.com> escribió:
>
> On Fri, Feb 24, 2017 at 8:44 PM Rafael E. Ferrero <
> rafael.ferrero en gmail.com> wrote:
>
> El 24 de febrero de 2017, 15:34, Andrés Ramírez <
> andres.ramirez.miori en gmail.com> escribió:
>
> No me queda muy en claro tu necesidad, pero comento un par de cosas que
> tal vez te sirvan. Inicialmente siempre he usado MySQL o Postgress, asique
> votaría por este último. Con respecto a lo que necesitas hacer antes de
> insertar un dato en la base, lo podés hacer programáticamente python (tener
> tu función de agregado a la base que antes me consulta por los datos que
> querés barrer e inserta sólo si tiene que hacerlo o retorna lo que
> necesitas), o a nivel base de datos (usando un trigger del tipo before
> insert, o algún store procedure). La última forma tal vez no es recomendada
> por que después te puede complicar, temas como cambiar el motor de base de
> datos, o recordar que existe código que no está en tu código, etc.
> Igualmente también puede ser que no necesites acceder a la base antes de
> cada insert y los datos que necesitas ya los tengas en memoria, pero
> depende exclusivamente de que estás haciendo.
>
>
> Saludos
>
> El 24 feb. 2017 2:55 PM, "Nicolás Adamo" <nicoadamo en gmail.com> escribió:
>
> >>> print("Hola Mundo!")
>
> [Siguiendo el principio KISS]
>
> Estimada Lista,
>
> Los sigo hace tiempo, pero nunca me presenté. Como todo introvertido hice
> antes consultas con el maestro Humitos, pero no con la lista :P
> Soy Nicolás Adamo, tengo 30 años (por poco tiempo más), soy de Salta,
> Ingeniero Civil de la UNSa, y trabajo en una constructora, en el área de
> Planificación y Control de Proyectos. Por una oportunidad que se me
> presentó, ahora estoy en Egipto trabajando en la ampliación de una
> termoeléctrica.
>
> De todas formas los 3 últimos proyectos en los que participé fueron
> acueductos y gasoductos, obras que de forma análoga a las rutas, caminos,
> canales y vías férreas, son obras lineales.
> En esos proyectos tuve éxito integrando diversos reportes de avance usando
> mucho código de VBA (Visual Basic for Applications) adentro de MS-Excel.
> Por supuesto que me encanta Python, su sintaxis es bella, sencilla,
> multiplataforma y se puede usar en casi cualquier cosa; pero en el laburo
> lamentablemente hay lo que hay y me tuve que adaptar a eso.
>
> Ahora estoy tratando con otros 2 compañeros de hacer una aplicación
> robusta, sacando estos algoritmos de MS-Office. Para la interfaz gráfica
> inicialmente me agradaba PyQt, pero después alguien en la lista mencionó
> Kivy, y me encantó ya que es un desarrollo nuevo, multiplataforma, y
> soporta entornos móbiles (Android, iOS, etc).
>
> Pero con el tema de la base de datos aún ando perdido... Tiene que ser
> remota, y para eso sé que existen MariaDB y PostgreeSQL; pero el tema es
> que necesito realizar validaciones complejas antes de hacer un insert o
> actualizar un registro. Validaciones que implican recorrer los registros de
> una tabla *antes* de modificarla, y si hay errores, devolver un objeto con
> algunos datos que se encuentran en este barrido previo durante la
> validación.
>
> Alguno pasó por algo parecido? Qué me recomiendan para empezar a mirar?
>
> Les mando un abrazo y sigan así con la lista que es la mejor, por lejos!
>
> Saludos,
>
> Nicolás Adamo
>
>
>
> Particularmente yo me inclinaría por usar un ORM como SQLAlchemy...
> (personalmente uso Django y su ORM me parece genial) pero por lo que
> entendí van por el lado de aplicaciones instalables en cada dispositivo y
> no por el lado de las aplicaciones web
>
> Saludos !!
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
>
> Muchas gracias por las sugerencias señores.
> Voy a mirar entonces un ORM para evitar el evento before insert.
>
> A lo que me refiero es que si tengo los siguientes registros:
> #Registro |Progresiva Inicio  |Progresiva Fin
> 1         |30                 |50
> 2         |70                 |100
>
> (En el ejemplo queda un hueco entre el 50 y el 70).
>
> Si quiero insertar el registro #3 con inico=40 y fin=70, la validación que
> tengo que hacer antes de insertar debe barrer todos los registros y
> detectar que con el registro #1 tengo conflicto, porque estoy duplicando el
> segmento que va del 40 al 50. Me explico?
> Allí debería devolver a la aplicación remota, que intentó cargar ese
> registro, información sobre el segmento duplicado.
>
>
> Saludos!
>
> Nicolás Adamo
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar


_______________________________________________
pyar mailing list pyar en python.org.ar
http://listas.python.org.ar/listinfo/pyar

PyAr - Python Argentina - Sitio web: http://www.python.org.ar/

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170224/0b9b6379/attachment-0001.html>


Más información sobre la lista de distribución pyar