Re: [Zope3-Users] zc.async in Zope2/Plone

2008-09-13 Thread Santiago Videla
Hi,

more reports... :)



 If you want a Zope 2 instance to run the zc.async dispatcher/worker
 threads, then it might be better to get the DB that zope is using.  In Zope
 3, there's an event you can subscribe to to get the DB.  Maybe there's
 something similar in Zope 2 these days?



I found that this event it's fired since Zope2.11, but I'm using Zope2.10.6
(actually repoze.zope use this version), so I left this option

What I did to run more than 1 client instance, is to set the environment
variable ZC_ASYNC_UUID from supervisord.conf
for each client instance.

This will start one dispatcher per instance, right? is that ok?

best regards

-- 
Santiago Videla
www.revolucionesweb.com.ar
http://www.linkedin.com/in/svidela

Sigue la mata dando de que hablar siempre abajo y a la izquierda donde el
pensamiento que se hace corazón resplandece con la palabra sencilla y
humilde que [EMAIL PROTECTED] [EMAIL PROTECTED] somos.
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] zc.async in Zope2/Plone

2008-09-13 Thread Gary Poster

On Sep 12, 2008, at 7:16 PM, Santiago Videla wrote:

 Hi Gary,


 If you want a Zope 2 instance to run the zc.async dispatcher/worker  
 threads, then it might be better to get the DB that zope is using.   
 In Zope 3, there's an event you can subscribe to to get the DB.   
 Maybe there's something similar in Zope 2 these days?


 I found it. but I'm not sure if really fire the event at any moment.

 in my configure.zcml I have:
 subscriber
   for=zope.app.appsetup.
 IDatabaseOpenedEvent
   handler=.handlers.zcasync_config_handler
   /

 the instance starts, but it seems that the handler never run

You explained this in the email today.  Good to know.  That means in  
2.11 the zc.async setup might be extremely close to that of Zope 3.   
Cool!


 2008-09-12 02:20:01 ERROR zc.async.events UUID  
 10c69742-8084-11dd-9853-0016d3094e86 already activated in queue   
 (oid 44148): another process?  (To stop poll attempts in this  
 process, set ``zc.async.dispatcher.get().activated = False``.  To  
 stop polls permanently, don't start a zc.async.dispatcher!)

 Maybe you are running your tests while you are running your app  
 instance, and that both of them actually connect to your real live  
 ZEO.

 Or maybe you are starting a dispatcher yourself, *and*  
 zc.async.ftesting.setUp is starting a dispatcher?  (ftesting setUp  
 does start one.)

 right, and what about running many clients with one ZEO.

Many clients with one ZEO server is just fine, as long as they have  
their own UUID.  This newer version of the quickstart, based on trunk,  
explains the idea (look for the Monte Carlo discussion in the second  
half).

http://svn.zope.org/zc.async/trunk/src/zc/async/QUICKSTART_1_VIRTUALENV.txt?rev=90112view=auto

The sphinx-processed version of this file is much easier to read, but  
I don't want to upload that until I have the release that it describes!

 I'm getting the same error and I don't understand what to do, this  
 is why I need to get the DB that zope is using?

No, you don't have to get the same DB.  Just maybe cleaner.

Each dispatcher process needs its own UUID, as saved in uuid.txt, as  
controllable by an environmental variable.  If you hunt around, I bet  
you'll find a uuid.txt, probably in the same directory that you  
usually start your process.  If you read that text, you'll see  
something like this:

 afd1e0d0-52e1-11dd-879b-0017f2c49bdd
  

 The value above (and this file) is created and used by the zc.async
 package. It is intended to uniquely identify this software  
instance when
 it is used to start a zc.async dispatcher.  This allows multiple
 dispatchers, each in its own software instance, to connect to a  
single
 database to do work.

 In order to decide where to look for this file (or to create it, if
 necessary), the module looks in ``os.environ['ZC_ASYNC_UUID']``  
for a
 file name.

 If you are using zdaemon (http://pypi.python.org/pypi/zdaemon) to
 daemonize your process, you can set this in a zdaemon environment  
section
 of your zdaemon.conf. Supervisor (http://supervisord.org/) also  
provides
 this functionality. Other similar tools probably do as well.

 If the ``ZC_ASYNC_UUID`` is not found in the environment, it will  
use
 ``os.path.join(os.getgwd(), 'uuid.txt')`` as the file name.

 To get a new identifier for this software instance, delete this  
file,
 restart Python, and import zc.async.instanceuuid.  This file will  
be
 recreated with a new value.

 thanks for your help again, and sorry for my ignorance

Don't apologize!  I've spent a lot of time on docs, but they still are  
far from what I want.  The virtualenv quickstart is good, but I need  
to finish the grok quickstart I have--and then maybe add a Zope 2.11  
quickstart!

Thanks

Gary
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] zc.async in Zope2/Plone

2008-09-13 Thread Gary Poster

On Sep 13, 2008, at 2:43 PM, Santiago Videla wrote:

 Hi,

 more reports... :)



 If you want a Zope 2 instance to run the zc.async dispatcher/worker  
 threads, then it might be better to get the DB that zope is using.   
 In Zope 3, there's an event you can subscribe to to get the DB.   
 Maybe there's something similar in Zope 2 these days?


 I found that this event it's fired since Zope2.11, but I'm using  
 Zope2.10.6 (actually repoze.zope use this version), so I left this  
 option

 What I did to run more than 1 client instance, is to set the  
 environment variable ZC_ASYNC_UUID from supervisord.conf
 for each client instance.

oops, I just told you about this in the other email, after having  
skimmed this one too lightly.  :-)

 This will start one dispatcher per instance, right? is that ok?

That's exactly right--exactly the intent.

Gary
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users