2016-10-21 11 views
1

Я добавляю Pebble template к моему приложению для крысиной, и есть одно дело, которое меня беспокоит: должен ли мой пример RendererSupport использовать ratpack's Blocking.get() или нет? Поскольку у PebbleEngine есть собственный кеш, я не могу сказать, будет ли он загружать источник шаблона с диска, так что это (возможно) операция ввода-вывода. Глядя на реализацию шаблонов рулей, я не вижу никакого особого отношения к операции ввода-вывода.Загрузка и компиляция шаблона в ratpack: блокировка или нет?

Итак, мой вопрос: правильно ли использовать правило Blocking для всех операций с потенциально IO-привязкой (например, файловая система или доступ к db) или существует более сложное правило?

ответ

1

Если кеш Pebble является неопределенным (одно рулевое управление), то я бы сказал, что вы можете сделать то же самое, что и интеграция Ratpack для Handlebars - зависит от кэша и запускать код, который может потенциально загружать шаблон с диска на вычислить поток. Вы будете платить штраф за производительность каждый раз, когда шаблон загружается в первый раз (потому что вы будете запускать код блокировки в вычислительном потоке), но он будет исчезать по мере увеличения кеширования.

Обратите внимание, что в трекере есть an issue, целью которого является удаление этого штрафа за производительность для интеграции Handlebars путем предварительного компиляции шаблонов и, таким образом, заполнения кеша при запуске.

+0

Это именно то, о чем я думал, но не был на 100% уверен. Благодаря! – leetwinski

 Смежные вопросы

  • Нет связанных вопросов^_^