[pyar] File lock
Juan Carlos Ojeda
juancarlospaco en gmail.com
Lun Jul 5 21:43:24 ART 2010
Ese File Lock da error si usas NFS.
Yo uso un directorio,
la creacion de directorios en LiGNUx es Atomico.
#!/bin/bash
# -*- coding: utf-8 -*-
# Licence = GPL v3
lockdir=/tmp/mylock.lock
if mkdir "$lockdir" # mkdir is atomic on LiGNUx
then # Launch the app, create the dir
echo " "
echo >&2 " Successfully acquired lock: $lockdir..."
echo " "
/usr/bin/env python /path/to/my/app.py ### > /dev/null 2>&1
echo " "
rm -rfv /tmp/mylock.lock
else # Dont start the app, the dir exist
echo " "
echo >&2 -e '\033[40m\033[1;31m WARNING: Cannot acquire Lock, giving up
on $lockdir... \033[0m'
echo " "
echo " The MyApp is already running?"
echo " "
xkbbell
sleep 3
exit 0
fi
El 5 de julio de 2010 21:35, Marcelo Fernandez <
marcelo.fidel.fernandez en gmail.com> escribió:
> 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
> _______________________________________________
> 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/
>
--
.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100705/d67ff350/attachment.html>
More information about the pyar
mailing list