[pyar] File lock

Mariano Guerra luismarianoguerra en gmail.com
Mar Jul 6 00:38:04 ART 2010


2010/7/5 Andrés Gattinoni <andresgattinoni en gmail.com>:
> Qué tal, gente?
>
> Otra vez con una pregunta de newbie. Esta es menos específicamente de
> Python y más sobre Linux (o Posix?), pero creo que está bastante
> on-topic porque es para algo que quiero hacer en python.
>
> Para comunicar muy sencillamente dos aplicaciones (una aplicación web
> en PHP y un script en Python), quiero utilizar un archivo. La idea es
> que la aplicación en PHP pueda encolar comandos en el archivo, y que
> el script en Python los desencole y procese. Sé que no es la opción
> más óptima, pero por cuestiones que exceden el prístino, formal y
> lógico mundo del código, debo hacerlo así.
>
> La cuestión es, ¿cómo hago para que el archivo en cuestión no sea
> escrito por la aplicación de PHP mientras el script de Python está
> desencolando y viceversa?
>
> Mi suposición es que es cuestión de lockear el archivo, pero no tengo
> mucha idea de cómo funciona ese tema.
>
> Googleando encontré esto: http://docs.python.org/library/fcntl.html#fcntl.lockf
>
> Lo que interpreto de allí es que cuando corre mi script en Python debería hacer:
> file = open('queue.txt')
> fcntl.lockf(file, fcntl.LOCK_EX)
> ... # cosas locas
> fcntl.lockf(file, fcntl.LOCK_UN)
> file.close()
>
> Eso es así? Ese método sería el más adecuado?
> Si tengo que leer y luego escribir (para desencolar tengo que obtener
> los comandos y borrarlos del archivo), me conviene lockear antes o
> después de leer?
> Para cerrar el archivo abierto para lectura y abrirlo para escritura,
> tengo que deslockear y volver a lockear?
> Estoy miccionando fuera del receptáculo?

python y php tienen bindings para sqlite, inserts, selects y deletes?



More information about the pyar mailing list