Реализовать модуль регистрации ботов #19
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Необходимо реализовать модуль регистрации ботов средствами erlang:
План выполнения Задачи #19 – Реализовать модуль регистрации ботов
1. Анализ и цели
Контекст: Для нагрузочного тестирования и имитации активности реальных пользователей необходимо создать пул ботов — специальных учётных записей с типом
bot. Существующий модульcore_user.erlне предоставляет отдельных функций для массового создания или удаления таких пользователей.Цели:
core_user.erlфункциями для создания/удаления учётных записей с рольюbot.bot_controller.erl, который будет управлять процессом регистрации ботов на основе глобальных настроек.2. Детальный план реализации
2.1. Добавление новых функций в
core_user.erlДобавим две новые экспортируемые функции:
create_bot(Email, Password) -> {ok, User} | {error, Reason}.Создаёт пользователя с полем
role = bot. В остальном логика аналогична текущей функцииcreate/2, но с явным указанием ролиbot.delete_bot(Id) -> ok | {error, not_found}.Удаляет учётную запись бота. Для избежания накопления данных в Mnesia предлагается выполнять жёсткое удаление записи (
mnesia:delete/1) вместо «мягкого» (status = deleted).2.2. Создание модуля
bot_controller.erlНовый файл
src/infra/bot_controller.erlбудет содержать всю логику управления ботами.API модуля:
register/0— читает переменные окружения (BOT_COUNT,BOT_DOMAIN,BOT_DEFAULT_PASSWORD) и запускает процесс регистрации указанного количества ботов.delete/0— удаляет всех пользователей с рольюbot, используяcore_user:delete_bot/1.Переменные окружения (ожидаемые):
BOT_COUNT(целое число, обязательно) — количество генерируемых ботов.BOT_DOMAIN(строка, по умолчанию"eventhub.com") — домен для email-адресов.BOT_DEFAULT_PASSWORD(строка, по умолчанию"botpass123") — единый пароль для всех ботов.2.3. Генерация имён ботов
Для формирования
Emailиспользуется следующая схема:"bot_" ++ random_string(8) ++ "@" ++ BotDomain.Функция
random_string/1будет собрана из букв (строчные/заглавные) и цифр с использованиемrand:uniform.2.4. Обработка ошибок
3. Интеграция
core_user.erl(добавитьcreate_bot/2иdelete_bot/1).bot_controller.erlвsrc/infra/.bot_controllerне запускается автоматически при старте приложения (будет вызываться вручную из shell).4. Тестирование
4.1. Запуск и проверка создания ботов
В консоли Erlang после старта приложения:
4.2. Удаление ботов
5. Результат
После выполнения этих шагов платформа EventHub получит инструмент для быстрого создания пула тестовых пользователей-ботов, что упростит нагрузочное тестирование и имитацию активности.