Part of spamfighter.core.storage.memory View Source View In Hierarchy
Удаление ключей из памяти происходит либо при обращении ключу, либо по периодически запускаемой задаче, которая уничтожает просроченные ключи массово.
Instance Variables | hash | хэш вида: ключ -> (время_жизни, значение)
(type: dict
) |
deleteQueue | "очередь" ключей на удаление, хэш
вида: момент_удаления -> { хэш
ключ_на_удаление -> 1 }
(type: dict
) | |
deleteInterval | интервал группировки ключей на удаление
в секундах (ключи с временем жизни в
данном интервале будут удалены общей
пачкой)
(type: int
) | |
cleanupInterval | интервал запуска задачи очистки
просроченных ключей
(type: int
) | |
lastDeleteTime | первый момент удаления ключей для
следующего запуска задачи очистки
(type: int
) | |
Class Variables | instance | синглтон-экземпляр MemoryStorage
(type: MemoryStorage
) |
Method | __init__ | Конструктор. |
Method | set | Записать (перезаписать) значение ключа. |
Method | get | Получить значения ключа. |
Method | add | Добавить ключ в хранилище. |
Method | append | Дописать в конец значения ключа еще один элемент. |
Method | delete | Удалить ключ из хранилища. |
Method | incr | Увеличить значени счетчика на указанное значение |
Static Method | getInstance | Получить синглтон-экземпляр хранилища. |
Method | _cleanup | Очистить старые ключи. |
Method | _exists | Внутренний метод: существует ли указанный ключ в хранилище? |
Parameters | deleteInterval | интервал группировки ключей на удаление
в секундах (ключи с временем жизни в
данном интервале будут удалены общей
пачкой)
(type: int
) |
cleanupInterval | интервал запуска задачи очистки
просроченных ключей, если интервал 0, то
задача очистки не запускается никогда
(type: int
) |
Метод либо вызывается автоматически
через каждые cleanupInterval
секунд, либо
может вызываться в любой момент
времени.
Returns | (type: bool
) |
Parameters | key | ключ
(type: str
) |
value | значение
(type: str или int
) | |
expire | время жизни ключа в секундах, 0 - хранить
"вечно"
(type: int
) | |
Returns | Deferred о завершении операции
(type: twisted.internet.Deferred
) |
Если ключ не найден (не существует,
потерян, истекло время жизни),
возвращается исключение KeyError
.
Parameters | key | ключ
(type: str
) |
Returns | Deferred значение ключа, str или
int
(type: twisted.internet.Deferred
) |
Операция аналогична set
, но если
ключ уже существует, будет возвращена
ошибка KeyError
.
Parameters | key | ключ
(type: str
) |
value | значение | |
expire | время жизни ключа в секундах, 0 - хранить
"вечно"
(type: int
) | |
Returns | Deferred о завершении операции
(type: twisted.internet.Deferred
) |
KeyError
.Parameters | key | ключ
(type: str
) |
value | дописываемое значение | |
Returns | Deferred о завершении операции
(type: twisted.internet.Deferred
) |
Если ключ не найден, возвращается
исключение KeyError
.
Parameters | key | ключ
(type: str
) |
Returns | Deferred о завершении операции
(type: twisted.internet.Deferred
) |
KeyError
.Parameters | key | ключ
(type: str
) |
value | значение на которое увеличиваем
(type: int
) | |
Returns | Deferred о завершении операции, int
(type: twisted.internet.Deferred
) |
Returns | (type: MemoryStorage
) |