PROBLEM
Wie wird der Quota Counter bei Nachrichten berechnet? Ich sehe Dezimalwerte bei den Zählern, die die Nachrichtenanzahl verfolgen, wie ist das möglich?
LÖSUNG
Der Zähler wird wie folgt erhöht, sobald eine neue Nachricht erfasst wird:
1. Aktuellen Counter-Wert aus der DB lesen
2. ElapsedTime = Now - LastUpdate
3. WENN ElapsedTime > Period (die für die Quota-Regel definierte) DANN CurrentCounter = 0 SONST CurrentCounter = ( 1 - (ElapsedTime / Period) ) * Counter
4. Delta = CurrentCounter - Counter
5. CurrentCounter erhöhen
6. WENN CurrentCounter > Limit DANN
7. DBValue += Delta (+1)
Betrachten Sie folgendes Beispiel, ausgehend von einem DB Counter von 8 mit einem Zeitrahmen von 300 Sekunden:
Counter = 8
ElapsedTime = 13:29:57 - 13:26:22 = 215
CurrentCounter = ( 1 - (215 / 300) ) * 8 = 2.27
Delta = 2.27 - 8 = -5.73
* * E-Mail zulassen .... CurrentCounter (+1) < Limit * *
DBValue += -5.73 (+1) = 3.27