flow

LadyRunner-Init

initLadyRunners

OperatorRunner.initLadyRunners() · src/main/operator/operator.runner.ts

Ініціалізує всі анкети оператора послідовно і запускає їхні логіки. Викликається з OperatorRunner без await — не блокує запуск ActivityService, StreamTracking, DataSync.


Фаза 1. Підготовка глобальних сервісів

  1. favoriteService.start() — завантажує фаворити всіх анкет
  2. statisticsService.getTasks() — завантажує поточні задачі
  3. emailService.start() — запускає обробку Email-тасків

Фаза 2. Ініціалізація анкет

for each lady → lady.init({ PUBLIC_KEY })

Між запитами — антифлуд: якщо від попереднього логіну пройшло менше 3 с, чекає решту до 3 с.

При помилці: lady.stop(), UI отримує попередження, анкета пропускається (може ініціалізуватись пізніше через handleNeedRefreshPublicKey).

Детально: LadyRunnerinit()


Фаза 3. Запуск логік

  1. statisticsService.start() — запускає інтервальну статистику
  2. Для кожної анкети: lady.runTasks()TaskChatService
  3. statisticsService.send() — надсилає стан в UI

Фаза 4. Запуск сендерів

Для кожної анкети: lady.runSenders() — ініціалізує ChatSender і MailSender.

При помилці: lady.stop(), таски і фаворити надсилаються в UI.


Завершення

ladyOnlineService.start()
isSuccessInitialized = true
savingViewsService.start()

isSuccessInitialized = true — розблоковує чергу DROP/SET_LADY в StackSocket.