Creatio development guide
PDF
Это документация Creatio версии 7.16.0. Мы рекомендуем использовать новую версию документации.

Сервис бандлирования статического контента

Glossary Item Box

Для повышения производительности весь клиентский контент (исходный код клиентских схем, css-стили) генерируется в специальном каталоге приложения Creatio. Преимущества такого подхода приведены в статье "Статический клиентский контент в файловой системе". Но из-за большого количества файлов браузеру необходимо выполнять большое количество запросов к приложению при его первоначальной загрузке. Чтобы избежать этого, обычно выполняется объединение всех однотипных файлов в один bundle-файл — бандлирование. Для объединения однотипных файлов статического контента Creatio разработан сервис бандлирования статического контента.

Схема

Приложение-наблюдатель (ContentWatcher) мониторит файлы в каталоге со статическим контентом и сообщает об изменениях в них веб-сервису.

Веб-сервис (ContentService) выполняет перегенерацию bundle-файлов приложения при поступлении определенных запросов (например, от ContentWatcher или вручную). После бандлирования веб-сервис изменяет определенный конфигурационный файл Creatio таким образом, чтобы он содержал информацию о необходимости использовать bundle-файлы вместо оригинального статического контента.

Общая схема работы сервиса бандлирования статического контента представлена на рис. 1.

Рис. 1. — Принципиальная схема сервиса бандлирования статического контента

Веб-сервис может быть установлен без приложения-наблюдателя (ContentWatcher). В таком случае запросы к ContentService на бандлирование или минификацию необходимо выполнять вручную.

Компоненты сервиса могут быть установлены на том же компьютере, что и Creatio, или на отдельном компьютере. Если они установлены отдельно, то у них должен быть сетевой доступ к файлам статического контента Creatio.

ContentService

Является .NET Core 2.1 веб-сервисом и имеет следующие операции (точки доступа):

  • / — проверка работоспособности сервиса (метод GET).
  • /process-content — генерирует минифицированные bundle-файлы (метод POST).
  • /clear-bundles — очищает bundle-файлы (метод POST).
  • /minify-content — минифицирует контент (метод POST).

ContentWatcher

Является .NET Core 2.1 приложением. Запускается как служба (также может запускаться через .NET Core CLI Tools). Основная задача — наблюдать за изменением указанного в параметре fileFilter файла, который находится по пути, указанном в параметре directory. По умолчанию это файл _MetaInfo.json. Изменение файла сообщает об обновлении статического контента. При обнаружении изменений ContentWatcher оповещает ContentService о необходимости перегенерировать bundle-файлы.

Структура конфигурации сервисов:

  • ets/content-watcher/appsettings.json — конфигурационный файл ContentWatcher.
  • docker-compose.yml — конфигурационный файл утилиты docker-compose.
  • .env — файл с переменными окружения для запуска компонентов.

Совместимость с продуктами Creatio

Сервис бандлирования статического контента совместим со всеми продуктами Creatio версий 7.11 и выше.

Варианты развертывания

Сервис бандлирования статического контента можно использовать для on-site и cloud приложений. Для развертывания сервиса on-site используется Docker-контейнер. Чтобы развернуть сервис для cloud приложения обратитесь в службу поддержки.

Системные требования:

  • Сервер под управлением Linux OS (рекомендуются стабильные версии Ubuntu или Debian), с установленной и настроенной стабильной версией docker. С этого сервера должны быть разрешены запросы к хранилищу образов Docker Hub.
  • На сервере должны быть установлены Docker и Docker Compose (см. документацию Docker).

Смотрите также

© Terrasoft 2002-2020.

Был ли данный материал полезен?

Как можно улучшить эту статью?