[Python] uWSGI spooler running tasks...
Marco De Paoli
depaolim a gmail.com
Ven 8 Ago 2014 15:03:05 CEST
ciao a tutti,
visto che avevo un esigenza simile, condivido alcuni snippet, magari a
qualcuno fa comodo...
Il giorno 12 luglio 2014 12:07, Roberto De Ioris <roberto a unbit.it> ha
scritto:
>
> Il bello dello spooler e' che e' tutto filesystem based, quindi per sapere
> che succede si usano le primitive posix:
>
> - scan della spooldir per sapere l'elenco dei task
>
for s in uwsgi.spoolers:
for fn in os.listdir(s):
filepath = os.path.join(s, fn)
(ok, questa era facile)
> - fcntl su ogni file per sapere se e' lockato (il che significa che e' un
> task in corso) https://docs.python.org/2/library/fcntl.html
>
import fcntl
def is_locked(filepath):
with open(filepath, "a+") as f:
try:
fcntl.lockf(f.fileno(), fcntl.LOCK_EX|fcntl.LOCK_NB)
is_locked = False
except IOError, e:
is_locked = True
return is_locked
(qui ammetto che ci ho messo un po' di tempo a capire come fare...)
- parsing del dizionario uwsgi di ogni file per conoscere i parametri
>
uwsgi.parsefile(filepath)
(questo esercizio era già risolto in un'altra parte del libro ;-) )
ciao,
Marco
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140808/1b0c145a/attachment.html>
Maggiori informazioni sulla lista
Python