src/Stiphle/Throttle/TimeWindow.php
public function throttle($key, $limit, $milliseconds)
    {
        /**
         * Try do our waiting without a lock, so may sneak through because of
         * this...
         */
        $wait = $this->getEstimate($key, $limit, $milliseconds);
        if ($wait > 0) {
            usleep($wait * 1000);
        }

        $key = $this->getStorageKey($key, $limit, $milliseconds); 
        $this->storage->lock($key);
        $count = $this->storage->get($key);
        $count++;
        $this->storage->set($key, $count);
        $this->storage->unlock($key);
        return $wait;
    }
public function throttle($key, $limit, $milliseconds)
    {
        /**
         * Try do our waiting without a lock, so may sneak through because of
         * this...
         */
        $wait = $this->getEstimate($key, $limit, $milliseconds);
        if ($wait > 0) {
            usleep($wait * 1000);
        }

        $key = $this->getStorageKey($key, $limit, $milliseconds); 
        $this->storage->lock($key);
        $count = $this->storage->get($key);
        $count++;
        $this->storage->set($key, $count);
        $this->storage->unlock($key);
        return $wait;
    }
public function throttle ( $ key , $ limit , $ milliseconds ) { /**
         * Try do our waiting without a lock, so may sneak through because of
         * this...
         */ $ wait = $ this -> getEstimate ( $ key , $ limit , $ milliseconds ) ; if ( $ wait > 0 ) { usleep ( $ wait * 1000 ) ; } $ key = $ this -> getStorageKey ( $ key , $ limit , $ milliseconds ) ; $ this -> storage -> lock ( $ key ) ; $ count = $ this -> storage -> get ( $ key ) ; $ count ++ ; $ this -> storage -> set ( $ key , $ count ) ; $ this -> storage -> unlock ( $ key ) ; return $ wait ; }
Throttle

@param string $key  - A unique key for what we're throttling
@param int $limit   - How many are allowed
@param int $milliseconds - In this many milliseconds
@return void
Throttle