Reload-Sperre für Zope-Objekt

Django, Flask, Bottle, WSGI, CGI…
Antworten
zopeuser
User
Beiträge: 4
Registriert: Freitag 10. November 2006, 10:15

Hallo Wissende,
ich habe ein recht umfangreiches (serverbelastendes) DTML-Objekt ( DTML Method) innerhalb einer Zope-Installation.
Das einmalige generieren (rufen) des Objects dauert ca. 1-2s, dh. mein Server kann ca. 30-60 Anfrage pro Minute bearbeiten.
Das ist soweit ausreichend.

Nun gibt es aber dumme bzw. böse Menschen, welche 30 mal in 10s auf den reload-Knopf des Browsers klicken bzw. ein Script schreiben.
Nach solcher Aktion ist mein Server erst mal 1 Minute beschäftigt und kann keine weiteren Nutzerabfragen beantworten.

Weiß jemand eine Methode wie man dies verhindern kann.
Mit Setzen und Rücksetzen einer "Variable"

Code: Alles auswählen

SESSION.SET
Anfang und Ende des Objects führte nicht zum Erfolg.

Die Navigationsleiste ist normalerweise ausgeblendet, so dass jedes Reload als böswillig gelten kann und ich den Nutzer auch zur Not "rausschmeißen" könnte.
Gruß Steffen
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

zopeuser hat geschrieben:ein recht umfangreiches (serverbelastendes) DTML-Objekt
Hi zopeuser!

Wie wichtig ist es, dass dieses DTML-Objekt jedes mal neu erstellt wird? Könntest du das DTLM-Objekt nur alle paar Minuten neu erstellen lassen?

Wenn das ginge, dann würde ich auf das Objekt über ein Python-Script zugreifen. Dieses Python-Script könnte prüfen, wie lange es her ist, dass die DTML-Methode frischen Content generiert hat. Wenn z.B. eine Minute noch nicht vergangen ist, dann könnte das Python-Script eine gecachte Seite zurück liefern. Wenn eine Minute vergangen ist, dann wird zuerst aus dem DTLM-Objekt eine temp. Datei erstellt, die dann zurück geliefert wird.

Das geht natürlich nur dann, wenn nicht für jeden Aufrufer etwas anderes drinnen stehen muss.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
zopeuser
User
Beiträge: 4
Registriert: Freitag 10. November 2006, 10:15

Hallo Gerold,
wieder mal Dank für die schnelle Antwort.
Das geht natürlich nur dann, wenn nicht für jeden Aufrufer etwas anderes drinnen stehen muss
Tja, das ist leider das Problem. Für jeden Nutzer und jeden Aufruf ist ein neue Seite (neues Objekt) notwendig.

Noch (jemand) eine Idee? :oops:

In der Hoffnung auf "gute" Menschen hier die Eingangsseite:
ZwickauGIS Der Zugang ist mit einigen Hürden behaftet (feste Fenstergröße). Um diese Hürden abzubauen, brauch ich eben den Schutz des Servers.
Gruß Steffen
Antworten