30.01.2006
Aktionen beim Hochfahren des Zope3-Servers ausführen
Wenn man in einer Zope-Applikation sicherstellen möchte, dass die Umgebung korrekt aufgesetzt ist, kann man beim Hochfahren des Zope-Servers entsprechende Aktionen ausführen. (Zum Beispiel, Utilities programmatisch, statt manuell anzulegen.)
by
Michael Howitz
—
posted at
2006-01-30 10:12
last modified
2006-01-30 10:12
Um sich in das Hochfahren von Zope einzuklinken, ist es nötig, sich
an den IDatabaseOpenedEvent zu subscriben. Das geschieht in der
configure.zcml so:
<subscriber
for="zope.app.appsetup.IDatabaseOpenedEvent"
handler=".bootstrap.bootStrapSubscriber"
/>
Der Handler ist eine Python-Funktion, die in der Datei bootstrap.py steht:
import transaction
from zope.app.intid.interfaces import IIntIds
from zope.component.interfaces import ISiteManager
from zope.app.appsetup.bootstrap import ensureUtility, getInformationFromEvent
from zope.app.intid import IntIds
def bootStrapSubscriber(event):
"""Subscriber to the IDataBaseOpenedEvent
Create local utilities if not yet present
"""
db, connection, root, root_folder = getInformationFromEvent(event)
# installiere als Beispiel ein UID-Utility
ensureUtility(root_folder, IIntIds, '',
IntIds, copy_to_zlog=False)
transaction.commit()
connection.close()
In diesem Beispiel wird ein "Utility für eindeutige ID" (Unique Id Utility) installiert, wenn es noch nicht vorhanden ist.
- Category(s)
- Zope 3
- The URL to Trackback this entry is:
- http://blog.gocept.com/aktionen-beim-hochfahren-des-zope-servers-ausfuehren/tbping