[Zope] Best Event system for Zope?
elabuschagne at gmsonline.co.za
Fri Feb 20 00:28:44 EST 2004
Thanks for the feedback Dieter and Terry,
Using a cron job is probably the fastest, easiest and most pragmatic way
for us programmers. My job as a programmer, however, is to make life even
easier for my clients. My clients mostly use Windows and gets a glazed
look in their eyes when I start talking about running this script and
running that script. As it is, I already have endless hassles on why my
solution doesn't have a one-click installer :(
I am therefore always trying to automate as much as possible within my
product (I usually create a Zope product for a specific project that
contains all the specific customizations for that project - it makes
deployment much easier).
Previously I have used the following solution for scheduling tasks (and was
hoping that Scheduler could replace this):
In one of the modules in my Product, I have a method that runs in a thread
(boy, did it take me a while to tie down my knowledge on accessing the ZODB
from threads!) and periodically calls a method via RPC. The thread is of
course registered (with asyncore or something) to start up after Zope tells
This thread knows how to safely open a connection into the ZODB, retrieve
information on where to find the methods it must fire (I store the paths in
the root of the ZODB in a PersistentMapping - probably naughty, but works
like a charm) and fire those methods every x seconds.
This is probably hackish, inelegant, or any other nasty term you can think
of, but I cannot think of any better way to solve this - from within Zope.
I would be cool if a "heartbeat" could be built into the scheduler or event
system - maybe I must have a go at it myself ;)
At 08:58 PM 19/2/2004 +0100, Dieter Maurer wrote:
>Etienne Labuschagne wrote at 2004-2-19 15:25 +0200:
> >I have mostly figured out the event system by now, but cannot figure out
> >how to get the scheduler to fire scheduled tasks by itself. Isn't the
> >scheduler supposed to fire off scheduled tasks once their next scheduled
> >time comes up? The only time when mine fires up tasks is when I trigger it
> >manually from the ZMI.
>Thus use "cron" (via "ZPublisher.Client", "wget", "curl" or "urllib")
>to tigger it periodically (as a replacement for your manual trigger).
More information about the Zope