[PEAK] EventDriven configuration questions
Phillip J. Eby
pje at telecommunity.com
Thu Jun 17 14:23:56 EDT 2004
At 11:02 AM 6/17/04 -0700, Dave Peticolas wrote:
>Is ZConfig a substitute for ini-style configuration
>in PEAK, or do they serve complementary purposes?
They're complementary. The difference is that .ini files configure the
environment that an application runs in, and can specify the root object of
an application. ZConfig files cannot define the application, but they can
assemble an application from components.
So, .ini files define the runtime environment, ZConfig files assemble
components. .ini files are primarily intended for use by developers *of*
the application, and to a limited extent for system administrators setting
up a corporate deployment environment. ZConfig files are primarily
intended for users of a configurable application. These are not fixed
boundaries, of course, but general principles.
>Can you start an EventDriven app using an ini file?
Yes. Just set the 'peak.running.app' property appropriately. This could
be done using a 'commands.Alias' or a 'naming.LinkRef' to run a separate
ZConfig file. Or, if you want to embed the configuration directly in the
.ini file, it could be as simple as:
[peak.running]
app = EventDriven(
stopAfter=5*60*60, idleTimeout=30*60,
components=[mypkg.Part1(),mypkg.Part2(),...]
)
>How can you configure an EventDriven app to use the
>Twisted reactor?
Add a component that depends on ITwistedReactor, and does so upon assembly,
e.g.:
class Something(binding.Component):
reactor = binding.Obtain(running.ITwistedReactor, uponAssembly=True)
If you add an instance of this component to your EventDriven app, it will
then use the Twisted reactor. Or, if you have an .ini file available, you
can do this:
[peak.events]
isTwisted = True
More information about the PEAK
mailing list