<div dir="ltr"><div><div>ciao a tutti,<br></div>visto che avevo un esigenza simile, condivido alcuni snippet, magari a qualcuno fa comodo...<br></div><br><div><div><div><div class="gmail_extra"><br><div class="gmail_quote">
Il giorno 12 luglio 2014 12:07, Roberto De Ioris <span dir="ltr"><<a href="mailto:roberto@unbit.it" target="_blank">roberto@unbit.it</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class=""><div class="h5"><br></div></div>
Il bello dello spooler e' che e' tutto filesystem based, quindi per sapere<br>
che succede si usano le primitive posix:<br>
<br>
- scan della spooldir per sapere l'elenco dei task<br></blockquote><div><br></div><div>for s in uwsgi.spoolers:<br>    for fn in os.listdir(s):<br>        filepath = os.path.join(s, fn)<br><br></div><div>(ok, questa era facile)<br>
</div><div><br> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
- fcntl su ogni file per sapere se e' lockato (il che significa che e' un<br>
task in corso) <a href="https://docs.python.org/2/library/fcntl.html" target="_blank">https://docs.python.org/2/library/fcntl.html</a><br></blockquote><div> </div><div></div><div>import fcntl<br><br>def is_locked(filepath):<br>
    with open(filepath, "a+") as f:<br>        try:<br>            fcntl.lockf(f.fileno(), fcntl.LOCK_EX|fcntl.LOCK_NB)<br>            is_locked = False<br>        except IOError, e:<br>            is_locked = True<br>
    return is_locked<br><br><div>(qui ammetto che ci ho messo un po' di tempo a capire come fare...) <br></div><div><br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

- parsing del dizionario uwsgi di ogni file per conoscere i parametri<br></blockquote><div><br>uwsgi.parsefile(filepath)<br></div></div><br></div><div class="gmail_extra">(questo esercizio era già risolto in un'altra parte del libro ;-) )<br>
</div><div class="gmail_extra"><br></div><div class="gmail_extra">ciao,<br>Marco<br></div></div></div></div></div>