[Twisted-Python] Need Exception that will stop ther reactor within twistd

Nicolas D. Cesar ncesar at lunix.com.ar
Mon Dec 4 14:56:00 EST 2006


El Viernes, 1 de Diciembre de 2006 23:11, glyph at divmod.com escribió:
> On 30 Nov, 08:00 pm, ncesar at lunix.com.ar wrote:
> My point is that you are artificially combining your application with your
> infrastructure.  The reactor is always potentially in use by multiple
> applications, so it is not the thing that should be stopped.

That's new to me! is there any documentation on "multiple applications" 
reactors? 

> >I have multiple LSTP (Linux Terminal Server Project) servers. All servers
> > are (almost) the same, and any of them can serve any client. There are
> > arround 8-12 servers and 150+ clients. I'm developing a twisted
> > application that balances clients requests (by filtering DHCP
> > discover/requests packets. (I attached an image, my application is called
> > multiltsp). I'm using ip_queue for this.
>
> OK.  So somewhere, there should be a MultiLTSPService which is the thing
> that gets stopped by these exceptions, I think.

I have a t.a.service.MultiService() serving all this inside an 
t.a.service.Application, where should I write the "try:.. except:" code? 

> >There is a LDAP somewhere that has all client MACs that are in the group
> > (eg. the 150 clients) and from time to time, multiltsp re-reads this
> > list. (I'm simplifying much of these details). I'll call this list
> > "ALL-MACS"... ... all multiltsp daemons MUST have the ALL-MACS list
> > identical, in case there is a out of sync[1] problem the (incorrect)
> > server must quit and the others must handle the clients.
>
> Shouldn't it just get informed that it is in an invalid state, and re-start
> itself, rather than shutting down entirely?  

Rebuilding your house won't stop the hurricane :-) re-starting won't bring it 
to a correct state, just because it's a problem from outside, usually 
asociated with a (sysadmin) human action. I need the process to stop (and 
send some mails) so it can be fully reparied with qualified supra-sysadmins. 
The MultiLTSP server can't be a zombie forever... But then again, i'm new to 
twisted (less than 5 month) and probably i'm misunderstanding twisted's 
components. 

> So there needs to be an object that represents the "whole application",
> which has references to all these services.  The reactor should not be
> serving that purpose.

I thought the main quit() was the reactor.stop(), my teachers were tutorials, 
is there any cleaner way to quit. There is a t.a.service.Application() should 
be used for this? should be used ANOTHER object?


-- 
Nicolás D. César <ncesar at lunix.com.ar>
Lunix S.R.L. -[ http://www.lunix.com.ar ]-
GnuPG Public Key: gpg --keyserver wwwkeys.pgp.net --recv-key 0x3606F3E6
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://twistedmatrix.com/pipermail/twisted-python/attachments/20061204/3e08c545/attachment.pgp 


More information about the Twisted-Python mailing list