Class s.c.s.m.MemoryStorage(object):

Part of spamfighter.core.storage.memory View Source View In Hierarchy

Хранилище пар (ключ, значение) в памяти. Каждая пара имеет индивидуальное время жизни. По истечении срока жизни пара удаляется из хранилища.

Удаление ключей из памяти происходит либо при обращении ключу, либо по периодически запускаемой задаче, которая уничтожает просроченные ключи массово.

Instance Variableshashхэш вида: ключ -> (время_жизни, значение) (type: dict )
deleteQueue"очередь" ключей на удаление, хэш вида: момент_удаления -> { хэш ключ_на_удаление -> 1 } (type: dict )
deleteIntervalинтервал группировки ключей на удаление в секундах (ключи с временем жизни в данном интервале будут удалены общей пачкой) (type: int )
cleanupIntervalинтервал запуска задачи очистки просроченных ключей (type: int )
lastDeleteTimeпервый момент удаления ключей для следующего запуска задачи очистки (type: int )
Class Variablesinstanceсинглтон-экземпляр MemoryStorage (type: MemoryStorage )
Method __init__ Конструктор.
Method set Записать (перезаписать) значение ключа.
Method get Получить значения ключа.
Method add Добавить ключ в хранилище.
Method append Дописать в конец значения ключа еще один элемент.
Method delete Удалить ключ из хранилища.
Method incr Увеличить значени счетчика на указанное значение
Static Method getInstance Получить синглтон-экземпляр хранилища.
Method _cleanup Очистить старые ключи.
Method _exists Внутренний метод: существует ли указанный ключ в хранилище?
def __init__(self, deleteInterval=10, cleanupInterval=60): (source)
Конструктор.
ParametersdeleteIntervalинтервал группировки ключей на удаление в секундах (ключи с временем жизни в данном интервале будут удалены общей пачкой) (type: int )
cleanupIntervalинтервал запуска задачи очистки просроченных ключей, если интервал 0, то задача очистки не запускается никогда (type: int )
def _cleanup(self): (source)
Очистить старые ключи.

Метод либо вызывается автоматически через каждые cleanupInterval секунд, либо может вызываться в любой момент времени.

def _exists(self, key): (source)
Внутренний метод: существует ли указанный ключ в хранилище?
Returns (type: bool )
def set(self, key, value, expire): (source)
Записать (перезаписать) значение ключа.
Parameterskeyключ (type: str )
valueзначение (type: str или int )
expireвремя жизни ключа в секундах, 0 - хранить "вечно" (type: int )
ReturnsDeferred о завершении операции (type: twisted.internet.Deferred )
def get(self, key): (source)
Получить значения ключа.

Если ключ не найден (не существует, потерян, истекло время жизни), возвращается исключение KeyError.

Parameterskeyключ (type: str )
ReturnsDeferred значение ключа, str или int (type: twisted.internet.Deferred )
def add(self, key, value, expire): (source)
Добавить ключ в хранилище.

Операция аналогична set, но если ключ уже существует, будет возвращена ошибка KeyError.

Parameterskeyключ (type: str )
valueзначение
expireвремя жизни ключа в секундах, 0 - хранить "вечно" (type: int )
ReturnsDeferred о завершении операции (type: twisted.internet.Deferred )
def append(self, key, value): (source)
Дописать в конец значения ключа еще один элемент. Работает только над существующими ключами, если ключ не существует, будет возвращена ошибка KeyError.
Parameterskeyключ (type: str )
valueдописываемое значение
ReturnsDeferred о завершении операции (type: twisted.internet.Deferred )
def delete(self, key): (source)
Удалить ключ из хранилища.

Если ключ не найден, возвращается исключение KeyError.

Parameterskeyключ (type: str )
ReturnsDeferred о завершении операции (type: twisted.internet.Deferred )
def incr(self, key, value=1): (source)
Увеличить значени счетчика на указанное значение Работает только над существующими ключами, если ключ не существует, будет возвращена ошибка KeyError.
Parameterskeyключ (type: str )
valueзначение на которое увеличиваем (type: int )
ReturnsDeferred о завершении операции, int (type: twisted.internet.Deferred )
@staticmethod
def getInstance(): (source)
Получить синглтон-экземпляр хранилища.
Returns (type: MemoryStorage )
API Documentation for SpamFighter, generated by pydoctor at 2009-02-27 11:58:37.