2011-08-31 14 views

risposta

15

Dai un'occhiata allo cherrypy.process.servers. Si può provare qualcosa di simile:

import cherrypy 
cherrypy.config.update({'server.socket_port': 8099}) 
cherrypy.engine.restart() 
+0

Mentre sono d'accordo, questa dovrebbe essere la risposta corretta, ho scoperto che semplicemente facendo un aggiornamento di configurazione e poi richiamando il riavvio sul mio server ha causato il blocco dei messaggi: "Aspettando che i sottoprocessi terminino ..." e "In attesa di thread Thread-1.". Non so perché questo sarebbe. – user975326

4

Se non si desidera sostituire l'intero processo (che è quello che cherrypy.engine.restart() fa), si potrebbe fare:

import cherrypy 
cherrypy.engine.stop() 
cherrypy.server.httpserver = None 
cherrypy.config.update({'server.socket_port': 8099}) 
cherrypy.engine.start() 

impostazione httpserver a è necessaria None oppure la chiamata cherrypy.engine.start() riutilizzerà solo l'host/porta che ha già, piuttosto che raccogliere la configurazione modificata. Non sono sicuro se ciò avvenga in modo inappropriato su un dettaglio di implementazione, però.