Внедрить основанные на времени квоты в Python

Мне нужно реализовать квоту на основе времени в моем приложении Python (витая).

Есть ли существующий модуль или другая реализация, которую я должен использовать в качестве ссылки?

В частности, моему приложению необходимо ограничить количество подключений от клиентов, используя такие правила, как "10 подключений в минуту".

Существует название модуля Google App Engine 'taskqueue', которое, кажется, соответствует моим потребностям, но я не использую GAE.

Спасибо.

РЕДАКТИРОВАТЬ:

  • Платформа Linux
  • Re: Iptables; это должно быть в приложении b/.c квоты будут основываться не на IP-адресе источника, а на некоторых данных, относящихся к конкретному приложению (например, "clientid").

1 ответ

Решение

Я не знаю ни о каком готовом компоненте, но это должно быть довольно просто сделать это.

Я бы, вероятно, использовал таблицу базы данных, содержащую два столбца: идентификатор пользователя и метку времени. Каждый раз, когда пользователь (IP-адрес?) Хочет установить соединение, вы находите все записи с этим идентификатором пользователя с отметкой времени между сейчас и 60 секундами назад. Если он ниже предела, вы добавляете запись и разрешаете соединение; в противном случае вы отклоняете соединение.

Другие вопросы по тегам