initLadyRunners
OperatorRunner.initLadyRunners() · src/main/operator/operator.runner.ts
Ініціалізує всі анкети оператора послідовно і запускає їхні логіки. Викликається з OperatorRunner без await — не блокує запуск ActivityService, StreamTracking, DataSync.
Фаза 1. Підготовка глобальних сервісів
favoriteService.start()— завантажує фаворити всіх анкетstatisticsService.getTasks()— завантажує поточні задачіemailService.start()— запускає обробку Email-тасків
Фаза 2. Ініціалізація анкет
for each lady → lady.init({ PUBLIC_KEY })
Між запитами — антифлуд: якщо від попереднього логіну пройшло менше 3 с, чекає решту до 3 с.
При помилці: lady.stop(), UI отримує попередження, анкета пропускається (може ініціалізуватись пізніше через handleNeedRefreshPublicKey).
Детально: LadyRunner → init()
Фаза 3. Запуск логік
statisticsService.start()— запускає інтервальну статистику- Для кожної анкети:
lady.runTasks()— TaskChatService statisticsService.send()— надсилає стан в UI
Фаза 4. Запуск сендерів
Для кожної анкети: lady.runSenders() — ініціалізує ChatSender і MailSender.
При помилці: lady.stop(), таски і фаворити надсилаються в UI.
Завершення
ladyOnlineService.start()
isSuccessInitialized = true
savingViewsService.start()
isSuccessInitialized = true — розблоковує чергу DROP/SET_LADY в StackSocket.