[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