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 для кожної анкети.
createChatTab()→ LadyRunner-Tab — відкриває Electron-вкладку анкетиtaskFactory.init()— завантажує активні таски з сервераwhiteListService.init()— завантажує whitelistdelay(1000)— пауза перед стартом моніторингуmanOnlineService.start(true)— старт відстеження онлайну чоловіківfavoriteService.updateFavoritesAfterInit()— синхронізує фаворитівexistsTab = true,reconnectCount = 0
При невдачі createChatTab → existsTab залишається false, анкета пропускається.
runTasks()
Запускає taskChatService.start(). Тільки якщо existsTab = true.
taskMailService відключений — логіку перебудовано.
runSenders()
apiSenderService.getSendersState()— завантажує збережений стан сендерівchatSender.initialize(state)·mailSender.initialize(state)— відновлюють чергу і трекиchatQueue.start()·mailSender.process()— запуск
Захист: якщо !existsTab або sendersWasRunning → нічого не робить.
stop()
Зупиняє всі сервіси, закриває вкладку (tabsService.logout + destroyAllByLadyId), скидає флаги.
Зв’язки
- Ініціалізується: LadyRunner-Init
- Вкладка: LadyRunner-Tab
- Інтервали: TaskChatService, ManOnlineService, BlockListService
- Сендери: ChatSender, MailSender, ChatQueue