[Python] Python come servizio sotto Ubuntu Server

2014-04-19 Per discussione Dario Concilio
Ciao a tutti,ecco ultime news
Ho finito di sistemare il codice e il file confOra mi succede un paio di cose, 
che non riesco a spiegare.Questo è il file conf sotto /etc/init
myservice.conf
description My Serviceauthor Dario Concilio d...@indhisys.it
start on startupstart on runlevel [234]stop on runlevel [0156]
chdir /var/www/folder_serviceexec python 
/var/www/folder_service/MyService.pyrespawn
Nota: la mia cartella del codice python si trova in /var/www/ perché uso la www 
come share.oltre a questo servizio ho un'interfaccia di configurazione dei 
setup del database postgresql fatta in PHP, quindi per comodità ho messo le 2 
cartelle: servizio in python e sito PHP nella stessa share.
Non sono abbastanza ferrato per capire se questa scelta mi compromette 
qualcosa, magari se potete darmi qualche dritta
Ora nel mio codice python
MyService.py
import Services.TCPCollectorServiceimport loggingimport ConfigParserimport 
multiprocessingimport signalimport time
event = multiprocessing.Event()
def errorOccurred(self, errorMessage):logging.error(ex)event.set()
def stopHandler(signum, frame):logging.info(Chiusura del servizio)
event.set()
signal.signal(signal.SIGTERM, stopHandler)
if __name__ == '__main__':
logging.basicConfig(filename='myservice.log',level=logging.INFO)
logging.info(Lettura ini)#Caricamento dei file INI e setting delle 
variabili che servono a inizializzare il primo thread[...]
tcpCollector = Services.TCPCollectorService.TcpCollectorService(addressForWeb, 
indhiVersion, debug, inoutPort, outMacroPort, bitrate)
tcpCollector.errorOccurred += errorOccurred#Avvio del thread 
principale, lui avvierà 3 sotto-thread ulterioritry:#Avvio thread 
TCP CollectortcpCollector.start()logging.info(TCP Collector 
avviato)while not event.is_set():time.sleep(3)
except Exception as ex:logging.error(ex)event.set()
L'effetto è che provando a riavviare il server, il python parte, lo vedo perché 
compare il file di log.la cosa strana è che nel log trovo per 11 volte il 
messaggio Lettura ini, mi aspettavo ovviamente una volta sola e i successivi 
log info inseriti nel codice
INFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura 
iniINFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura 
iniINFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura 
iniINFO:root:Lettura iniINFO:root:Lettura ini
Inoltre quando provo da terminal (root) faccio stop myservice, mi dice 
stop: Unknown instance:
Se provo ad avviare manualmente mi da questo, quindi tutto ok in avvio.
myservice start/running, process 1337
  ___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Supporto sperimentale ad asyncio in uWSGI

2014-04-19 Per discussione Roberto De Ioris
Ciao a tutti, vi segnalo il recente push nel repository ufficiale di uWSGI
del supporto (sperimentale) ad asyncio.

https://github.com/unbit/uwsgi-docs/blob/master/asyncio.rst

Per chi non lo sapesse asyncio (un tempo noto come 'tulip') e' il futuro
standard (forse) della programmazione evented/non-bloccante in python =
3.4

Io purtroppo non riesco a farmi piacere la programmazione callback-based
neanche se me la immagino con le tette, pero' di sicuro puo' tornare utile
a tanti.

Vi ricordo che attualmente (e vista la storia passata, mi sento di dire
che sara' cosi' per molto tempo) lo standard WSGI NON e' compatibile con
asyncio (o meglio con le coroutine introdotte in python 3.3), quindi
l'implementazione che vedete fa uso del modulo greenlet per mappare la
callable WSGI su un greenthread (che poi a sua volta puo' fare le chiamate
asyncio)

Ogni report e' il benvenuto.


-- 
Roberto De Ioris
http://unbit.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python