До змісту документації

Повідомлення ZMQ

R3el використовує один кадр JSON для кожного запиту й відповіді на визначеному прослуховувачі backend із DR3el.CMDB_NETWORK (типово tcp://127.0.0.1:42221). ZMQMsg визначає оболонку повідомлення, DZMQ — версію протоколу та час очікування, а DMessage — відправника, отримувача, метод і константи відповіді керування. MessageHandler спрямовує запити до відповідних обробників. Назви відправників визначають ролі, а не є обліковими даними автентифікації.

Новий пакет

{
  "protocol_version": 1,
  "sender": "r3el-control",
  "target": "batch",
  "method": "new_batch",
  "payload": {
    "input_directory": "/exports/disk1/archive/film",
    "output_directory": "/exports/disk1/archive/media/movies",
    "batch_size": 5
  }
}

BatchControl надсилає це повідомлення. BatchControlHandler використовує BatchConfiguration для перевірки саме цих параметрів: абсолютні шляхи каталогів і цілий розмір пакета з DR3el.BATCH_SIZES (5, 10, 20, 50 або 100). Сервіс R3el повинен мати змогу читати вхідний каталог на початку обробки. Вихідний каталог зберігається для майбутніх файлових операцій; ідентифікація ще нічого туди не записує.

Відповідь містить відправника r3el, отримувача r3el-control і метод new_batch. Вміст payload може бути таким:

  • {"status": "accepted"}: пакет заплановано, але ще не завершено.
  • {"status": "busy"}: інший пакет зарезервовано або він працює; новий не додано.
  • {"status": "error", "error": {"code": "invalid_parameters", "message": "..."}}.
  • {"status": "error", "error": {"code": "not_configured"}}: URL моделі відсутній або сервер працює в одноразовому діагностичному режимі.
  • {"status": "error", "error": {"code": "unknown_request"}}: цей маршрут або відправник не підтримується.

BatchProcessor резервує один пакет і планує виконання в циклі застосунку. BatchRunner створює нове з’єднання з базою даних і компоненти ідентифікації. Потік прослуховувача залишається вільним для надсилання інструментальних повідомлень. Після завершення процесор повертається в стан очікування. Очікувані помилки файлової системи, HTTP або підключення до бази даних журналюються й також звільняють процесор; програмні помилки передаються далі.

Передбачається, що робоча область порожня. У цьому інтерфейсі не реалізовано заміну чи очищення; New Batch ніколи мовчки не використовує й не перезаписує збережену робочу область. Такий запит завершується помилкою під час виконання, що потрапляє до журналу сервера. Автоматичних повторів немає: якщо відповідь про прийняття загубилася, це не означає, що пакет не стартував. Журнал подій фіксує результати пакета та елементів.

Надсилання ідентифікації

MCP використовує відправника mcp-identification, отримувача identification і метод submit_identification. payload містить attempt_id і об’єкт submission з title, year та confidence. SubmissionHandler знаходить спробу, якою керує сервер, і повертає ok, rejected або error. Сервер без активної спроби відхиляє подання. Поведінка MCP не змінена.

Некоректні оболонки повідомлень і помилки транспортного обробника повертають звичайну відповідь error із кодами invalid_request та handler_error відповідно.