Task Factory
Окремо для кожної TU тримає пул тасків і повністю контролює їхній стан та пріоритети.
Методи
tryAddTask(...)— єдина точка входу для кандидатів: перевіряє пріоритети й вирішує, чи створити таск, замінити наявний або нічого не робити;create(...)— додає таск у локальний пул і створює його через Stack API;close(...)— прибирає таск з активного пулу та закриває його через Stack API;remove(...)— прибирає таск з активного пулу та видаляє його через Stack API.
Task Factory не шукає таски й не залежить від того, яка логіка викликала tryAddTask(...).
Після створення, закриття або видалення публікує task-подію. Follow-up-сервіси слухають ці події й самі оновлюють свої ланцюжки та таймери; Task Factory їх напряму не викликає.
Джерела запитів
- Socket pipeline передає task-події.
- RU Unanswered сервіс знаходить непрочитану дію і передає запит на створення таска. Unanswered-таски мають найвищий пріоритет.
- RU Online сервіс дає дані Follow-up Message, Follow-up Mail і сендеру. Follow-up-сервіси самі ведуть свої стани й передають у Task Factory лише готового кандидата.
- RU All Dialogs сервіс дає дані для перевірок з іншими умовами. Між ним та Task Factory також буде окрема логіка відбору.
- Activity Alerts Udate після перевірки
ONLINE_LIMITпередає готового кандидатаLimitsAreOpenedTask.
Межі проміжних сервісів для RU All Dialogs ще не визначені.