lainiwa / perx

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Тестовое задание PERX

Enpoints

  1. POST /enqueue -- поставить таск в очередь
  2. GET /peek -- посмотреть на очередь

Решения

  1. Отработанные задачи убираются из очереди и переносятся в список results (чтобы видеть вычесленные результаты).
  2. Для хранения данных использую список (а не asyncio.Queue), чтобы удобно смотреть на его содержимое.
  3. Храню количество пройденных итераций (а не вычисляю по формуле (current_val-n1)/d) чтобы избежать потенциальных проблем с ошибкой округления.
  4. Через переменную окружения PERX_WORKERS_NUM или через settings.toml можно регулировать количество воркеров.
  5. Сделал скрипт start.sh в качестве демо. Запускает серевер, создает 3 задачи, а потом бесконечно трогает /peek и выводит состояние очереди.

About


Languages

Language:Python 83.5%Language:Shell 16.5%