task-factory

Task Factory

Окремо для кожної TU тримає пул тасків і повністю контролює їхній стан та пріоритети.

Методи

  • tryAddTask(...) — єдина точка входу для кандидатів: перевіряє пріоритети й вирішує, чи створити таск, замінити наявний або нічого не робити;
  • create(...) — додає таск у локальний пул і створює його через Stack API;
  • close(...) — прибирає таск з активного пулу та закриває його через Stack API;
  • remove(...) — прибирає таск з активного пулу та видаляє його через Stack API.

Task Factory не шукає таски й не залежить від того, яка логіка викликала tryAddTask(...).

Після створення, закриття або видалення публікує task-подію. Follow-up-сервіси слухають ці події й самі оновлюють свої ланцюжки та таймери; Task Factory їх напряму не викликає.

Джерела запитів

  1. Socket pipeline передає task-події.
  2. RU Unanswered сервіс знаходить непрочитану дію і передає запит на створення таска. Unanswered-таски мають найвищий пріоритет.
  3. RU Online сервіс дає дані Follow-up Message, Follow-up Mail і сендеру. Follow-up-сервіси самі ведуть свої стани й передають у Task Factory лише готового кандидата.
  4. RU All Dialogs сервіс дає дані для перевірок з іншими умовами. Між ним та Task Factory також буде окрема логіка відбору.
  5. Activity Alerts Udate після перевірки ONLINE_LIMIT передає готового кандидата LimitsAreOpenedTask.

Межі проміжних сервісів для RU All Dialogs ще не визначені.