Re: [Python] uWSGI spooler running tasks...
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 robe...@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 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] uWSGI spooler running tasks...
Il nome Marco sta acquisendo un significato particolare in questa lista... Byez -- Gollum1 teoro, dov'è il mio teoro... http:\\www.gollumone.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] uWSGI spooler running tasks...
Ciao, sto lavorando con gli spooler di uwsgi, ho scaricato Celery perché ha dei limiti nell'utilizzo dei processi come demoni. E nel lanciare dei task Fabric che usano parallel e multiprocessing non funziona. Tornando allo spooler di uwsgi, mi trovo bene, ho bisogno però di tenere d'occhio cosa sta facendo, quanti task sono in coda, quanti sono in esecuzione, etc... sarebbe carino che riuscissi a vedere anche il contenuto (il dizionario) dei task ancora in coda. Ma mi basta anche solo accedere alle statistiche senza usare il netcat :-) spoolers:[ { dir:works/tasks, pid:2633, tasks:2, respawns:0, running:1 } ] Perchè ho già trovato qualche magia nel mudulo uwsgi .. tipo uwsgi.spoolers ('works/tasks',) uwsgi.spooler_jobs() ['works/tasks/il_mio_job'] uwsgi.spooler_pid() 3389 uwsgi.parsefile('works/tasks/il_mio_job') {'execution_id': '4'} c'è modo usando il modulo python uwsgi di accedere alle informazioni di quali task sono in stato running? Queste 2 funzioni non mi sono mai piaciute (infatti non sono documentate da nessuna parte). Servivano a un mio collaboratore e gliele ho aggiunte anni fa (solo il plugin python le espone infatti). 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 - 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 - parsing del dizionario uwsgi di ogni file per conoscere i parametri tutto questo si potrebbe implementare in un unico tool con non piu' di 30 righe di python (o di ruby visto che ormai sei rubysta ;). Scatenati :) -- Roberto De Ioris http://unbit.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] uWSGI spooler running tasks...
Il 12/lug/2014 12:08 Roberto De Ioris robe...@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 - 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 - parsing del dizionario uwsgi di ogni file per conoscere i parametri tutto questo si potrebbe implementare in un unico tool con non piu' di 30 righe di python (o di ruby visto che ormai sei rubysta ;). Applausi. Ciao. Marco. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] uWSGI spooler running tasks...
Ciao, sto lavorando con gli spooler di uwsgi, ho scaricato Celery perché ha dei limiti nell'utilizzo dei processi come demoni. E nel lanciare dei task Fabric che usano parallel e multiprocessing non funziona. Tornando allo spooler di uwsgi, mi trovo bene, ho bisogno però di tenere d'occhio cosa sta facendo, quanti task sono in coda, quanti sono in esecuzione, etc... sarebbe carino che riuscissi a vedere anche il contenuto (il dizionario) dei task ancora in coda. Ma mi basta anche solo accedere alle statistiche senza usare il netcat :-) spoolers:[ { dir:works/tasks, pid:2633, tasks:2, respawns:0, running:1 } ] Perchè ho già trovato qualche magia nel mudulo uwsgi .. tipo uwsgi.spoolers ('works/tasks',) uwsgi.spooler_jobs() ['works/tasks/il_mio_job'] uwsgi.spooler_pid() 3389 uwsgi.parsefile('works/tasks/il_mio_job') {'execution_id': '4'} c'è modo usando il modulo python uwsgi di accedere alle informazioni di quali task sono in stato running? Grazie ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] uWSGI spooler running tasks...
2014-07-11 12:26 GMT+02:00 Simone Federici s.feder...@gmail.com: c'è modo usando il modulo python uwsgi di accedere alle informazioni di quali task sono in stato running? Ma uwsgitop non ti piace? O ci devi accedere programmaticamente? https://github.com/unbit/uwsgitop Ciao. Marco. -- http://beri.it/ - Un blog http://beri.it/i-miei-libri/ - Qualche libro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] uWSGI spooler running tasks...
2014-07-11 12:55 GMT+02:00 Marco Beri marcob...@gmail.com: Ma uwsgitop non ti piace? O ci devi accedere programmaticamente? https://github.com/unbit/uwsgitop uwsgitop è fantstico, e accede alle statistiche esposte --stats :1717 però, no io ci devo accedere programmaticamente dalla webapp django che sto scrivendo. Volevo capire se anziche aprire un socket sulla 1717 per accedere al json delle statistiche c'è un modo diretto con le api uwsgi. Inoltre per ogni task che ho in coda, mi piacerebbe sapere lo status. Se è running.. per intenderci. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python