[Zope3-dev] zope.app.twisted.main and zope multiservice

David Pratt fairwinds at eastlink.ca
Mon May 7 23:19:14 EDT 2007


Hi. I know there must be a few folks that would like to easily add other 
clients or servers to zope (at or after bootstrapping) and have control 
over the services with the running reactor :-)  A simple api for 
accessing the multiservice after bootstrapping would make zope more 
accessible to twisted development.

Has anyone got any ideas on incorporating this. I have made a suggestion 
but hoping for input and other ideas to make this happen.

The ZopeService class subclasses service.Multiservice. The Multiservice 
itself provides methods from twisted for adding, disowning, starting or 
stopping services or iterating over the services in the multiservice. I 
am hoping we can can come up with a good way to make this object 
accessible within zope. Many thanks.

Regards,
David


David Pratt wrote:
> I am wondering if as part of bootstrapping zope, that a utility could 
> not be set up in the site manager that could hang on the zope 
> multiservice object. Methods available for the utility could allow you 
> access to this after booting zope. Is this reasonable? Many thanks.
> 
> Regards,
> David
> 
> 
> David Pratt wrote:
>> Hi Martijn. Many thanks for your reply. I was not aware of your 
>> project so it is quite nice to see. I am hoping to try it out. :-)
>>
>> At zope's startup, a multiservice is started that currently adds the 
>> servers setup in the zope.conf. I have created configuration for 
>> additional clients and servers to use the existing thread pool and 
>> currently adding them to the multiservice using a modified main.py By 
>> having access to the multiservice object, you have complete control of 
>> each service in the app as well as the ability to incorporate other 
>> services to an already running reactor. Interaction within the app 
>> using multiple reactors is not safe - so access to this object allows 
>> you to add, remove, start or stop services.
>>
>> I also want the configuration to be explicit - so to using zconfig and 
>> recipes. Overall, I am integrating apps into buildouts as well. It is 
>> useful to be explicit here too since your configuration will otherwise 
>> be in a single egg somewhere. This could make it awkward to run 
>> multiple servers performing the same task on a machine, which is the 
>> pattern I am working with.
>>
>> Regards,
>> David
>>
>>
>>
>> Martijn Pieters wrote:
>>> On 5/3/07, David Pratt <fairwinds at eastlink.ca> wrote:
>>>> Hi. I'm really wanting to do more with twisted in zope. One thing that
>>>> would make this much easier is to have a means of getting hold of the
>>>> twisted multiservice following startup as opposed to using a different
>>>> main.py (as I have been) to allow the other services to be added,
>>>> started or stopped at, or any time following startup.
>>>
>>> I am not sure what you are looking for, but I have no trouble starting
>>> additional services after Zope startup. See my Wing IDE integration
>>> for Zope3, for example;
>>>
>>>  http://trac.zopatista.com/zopatista/browser/z3wingdbg/trunk/
>>>
>>> It starts additional services, such as a single-threaded HTTP debug
>>> server on a separate port, either at Zope start or later as the user
>>> requests.
>>>
>> _______________________________________________
>> Zope3-dev mailing list
>> Zope3-dev at zope.org
>> Unsub: 
>> http://mail.zope.org/mailman/options/zope3-dev/fairwinds%40eastlink.ca
>>
> 


More information about the Zope3-dev mailing list