service

LadyRunner

LadyRunner

src/main/lady/lady.runner.ts

Окремий runner для кожної анкети. Створюється в OperatorRunner — по одному на кожну активну анкету. Контейнер для всіх логік конкретної анкети.


Що містить (constructor)

ГрупаСервіси
ІнтервалиManOnlineService, TaskChatService, TaskMailService, BlockListService
СервісиFavoriteService, WhiteListService, LastSendService
ВідправкаChatSender, MailSender, ChatQueue
ІншеSocketMessageParser, TaskService

Флаги: existsTab, socketConnected, isOnline, sendersWasRunning, reconnectCount


init({ PUBLIC_KEY })

Викликається з LadyRunner-Init для кожної анкети.

  1. createChatTab()LadyRunner-Tab — відкриває Electron-вкладку анкети
  2. taskFactory.init() — завантажує активні таски з сервера
  3. whiteListService.init() — завантажує whitelist
  4. delay(1000) — пауза перед стартом моніторингу
  5. manOnlineService.start(true) — старт відстеження онлайну чоловіків
  6. favoriteService.updateFavoritesAfterInit() — синхронізує фаворитів
  7. existsTab = true, reconnectCount = 0

При невдачі createChatTabexistsTab залишається false, анкета пропускається.


runTasks()

Запускає taskChatService.start(). Тільки якщо existsTab = true.

taskMailService відключений — логіку перебудовано.


runSenders()

  1. apiSenderService.getSendersState() — завантажує збережений стан сендерів
  2. chatSender.initialize(state) · mailSender.initialize(state) — відновлюють чергу і треки
  3. chatQueue.start() · mailSender.process() — запуск

Захист: якщо !existsTab або sendersWasRunning → нічого не робить.


stop()

Зупиняє всі сервіси, закриває вкладку (tabsService.logout + destroyAllByLadyId), скидає флаги.


Зв’язки