Document Actions
* English
* EspaƱol
Send this page to somebody Print this page
ClockServer 0.2 for Zope 2.9
The Zope ClockServer product provides a mechanism for users to call Zope object methods without the use of an external clock source (e.g. cron/wget). It operates by acting as a medusa "server", essentially coopting Zope's asyncore mainloop and injecting "fake" requests into Zope's ZPublisher. Despite the complicated description, it's rather easy to use.
Installing with buildout
If you are using buildout to manage your instance installing ClockServer is very simple. You can install it by adding it to the eggs line for your instance:
[instance]
eggs = Products.ClockServer
If another egg package depends on Products.ClockServer you do not need to specify anything in the buildout configuration: buildout will detect this automatically.
After updating the configuration you need to run the ''bin/buildout'', which will take care of updating your system.
Installing without buildout
Move (or symlink) the ClockServer folder of this project (Products.ClockServer/Products/ClockServer) into the Products directory of the Zope instance it has to be installed for, and restart the server.
You may also download a traditional tarball that you unpack into Products from here.
Configuring Your Zope Instance to Use the ClockServer Product
In order to allow you to use the "clock-server" directive place the following lines in the [instance] section of your buildout configuration "buildout.cfg" file:
[instance]
....
....
zope-conf-additional=
%import Products.ClockServer
method /do_stuff
period 60
user admin
password 123
host localhost
The "clock-server" should be beneath the import line and define the script to be run and of often, /do_stuff every 60 seconds in this case. Any number of clock-server sections may be defined within a single zope.conf. Note that you must specify a username/password combination with the appropriate level of access to call the method you've defined. Then you need to update your buildout's environment, to do that just run:
$ bin/buildout -v
Descriptions of the values within the clock-server section follow:
method
the traversal path (from the Zope root) to an executable Zope method (Python Script, external method, product method, etc). The method must take no arguments.
period
the number of seconds between each clock "tick" (and thus each call to the above "method"). The lowest number providable here is typically 30 (this is the asyncore mainloop "timeout" value).
user
a zope username.
password
the password for the zope username provided above.
host
the hostname passed in via the "Host:" header in the faux request. Could be useful if you have virtual host rules set up inside Zope itself.
Making Sure the Clock Is Working
Examine your Z2.log file. It should show requests incoming via a "Zope Clock Server" useragent.
About ClockServer
* Author: Chris McDonough
* Original product page: http://plope.com/software/ClockServer/
* ClockServer for Zope 2.9 maintainer: Roberto Allende
* License: ZPL 2.1
* Platform: Zope 2.9