Внедрить основанные на времени квоты в Python
Мне нужно реализовать квоту на основе времени в моем приложении Python (витая).
Есть ли существующий модуль или другая реализация, которую я должен использовать в качестве ссылки?
В частности, моему приложению необходимо ограничить количество подключений от клиентов, используя такие правила, как "10 подключений в минуту".
Существует название модуля Google App Engine 'taskqueue', которое, кажется, соответствует моим потребностям, но я не использую GAE.
Спасибо.
РЕДАКТИРОВАТЬ:
- Платформа Linux
- Re: Iptables; это должно быть в приложении b/.c квоты будут основываться не на IP-адресе источника, а на некоторых данных, относящихся к конкретному приложению (например, "clientid").
1 ответ
Я не знаю ни о каком готовом компоненте, но это должно быть довольно просто сделать это.
Я бы, вероятно, использовал таблицу базы данных, содержащую два столбца: идентификатор пользователя и метку времени. Каждый раз, когда пользователь (IP-адрес?) Хочет установить соединение, вы находите все записи с этим идентификатором пользователя с отметкой времени между сейчас и 60 секундами назад. Если он ниже предела, вы добавляете запись и разрешаете соединение; в противном случае вы отклоняете соединение.