Slide 37
Slide 37 text
A Simple Event Throttling Class
class Event
{
public static function log($event, $uid, $duration = null)
{
$r = self::$redis;
$r->incr("event:$event:$uid");
if ($duration) {
if ($r->ttl("event:$event:$uid") < 0) {
$r->expires("event:$event:$uid", $duration);
}
}
}
public static function isAllowed($event, $uid, $threshold = null)
{
$r = self::$redis;
if ($r->exists("event:$event:$uid")) {
if ($threshold) {
$currentValue = $r->get("even:$event:$uid");
if ($currentValue <= $threshold) {
return true;
}
}
return false;
}
return true;
}
}