[pyar] File lock

Marcelo Fernandez marcelo.fidel.fernandez en gmail.com
Lun Jul 5 21:35:37 ART 2010


El día 5 de julio de 2010 21:32, Roberto Alsina
<ralsina en netmanagers.com.ar> escribió:
> On Monday 05 July 2010 21:13:59 Andrés Gattinoni wrote:
>> 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í.
>
> Sí, podés pero hay maneras mejores. Por ejemplo, la que uso yo para esa clase
> de problemas es:
>
> Del lado del "encolador":
>
> * Creo un archivo temporal seguro
> * Escribo el comando adentro
> * Lo muevo a una carpeta
>
> Del lado del "desencolador":
>
> * Hago un listado de la carpeta
> * Abro el archivo más nuevo
> * Le hago un "unlink"
> * Lo leo
> * Lo cierro
>
> Esto no requiere locking, no tiene race conditions, y te garantiza que el
> cuelgue de uno de los dos componentes no te cuelgue el otro.

¿Todo esto no lo hace automágicamente el SO mediante un named pipe[1][2]?

[1] http://en.wikipedia.org/wiki/Named_pipe
[2] http://docs.python.org/library/os.html#os.pipe

Saludos
-- 
Marcelo F. Fernández
Buenos Aires, Argentina
Licenciado en Sistemas - CCNA

E-Mail: marcelo.fidel.fernandez en gmail.com
Blog: http://blog.marcelofernandez.info
Twitter: http://twitter.com/fidelfernandez



More information about the pyar mailing list