Вопрос:Проблемы с кэшированием Многоязычная веб-данных - Python - Google App Engine
Каковы наиболее эффективные подходы к многоязычным кэширование данных на веб-сервере, учитывая то, что клиенты хотят и тот же базовый набор данных, но в их формате локали. Таким образом, 1000 элементов данных max будут кэшироваться, а затем передаваться по запросу в определенном формате локали.
Мой текущий подход заключается в следующем:
У меня есть многоязычный питон Google App Engine проекта. Многоязычная часть использует Babel и различные языки .po и .mo файлы для перевода. Это все прекрасно и денди. Проблемы, возникающие при рассмотрении кэширования данных. Например, допустим, у меня есть 1000 списков продуктов, которые я хочу, чтобы клиенты могли получать доступ к 100 за раз. Я использую memcache с объектом резервного копирования хранилища данных, если memcache взорван. Опять же, все прекрасно и денди, но не многоязычно. Каждый продукт должен быть сопоставлен, чтобы соответствовать ключу с конкретной локалью любого клиента, английского, французского, турецкого и любого другого. То, как я делаю это сейчас, - это сопоставить продукты под определенной локалью, например «en_US», и отобразить серверную часть с помощью шаблонов jinja2. Каждый бит данных, который является многоязычным, визуализируется с использованием настроек языкового стандарта для даты, названия форматирования цены и т. Д. И т. Д. В формате «en_US» и помещается в хранилище данных и memcache, все красиво составленные для рендеринга. Тем не менее, у меня есть дополнительный шаг, чтобы получить эти многоязычные данные в правильном формате для локали клиентов, и это делается в виде стандартных {{}} переводов и фильтров jinja2, как правило, для таких вещей, как форматирование цены и даты. Проблема в том, что это замедляет работу, так как все это нужно отображать на сервере, а затем передавать обратно клиенту. Первоначальные 100 продуктов всегда отображаются на стороне сервера, однако до кэширования я предоставлял остальную клиентскую сторону из данных JSON через аякс-вызовы на сервер. Теперь это все рендеринг на стороне сервера.
Я не хочу, чтобы попасть в дискуссию марафона относительно сервера против визуализации на стороне клиента, но я был бы признателен за любое понимание того, как другие успешно обрабатываются многоязычным кэширование
Вопрос является способом широкого. –
Тим, я должен не согласиться. Прочтите последний параграф. Это в основном суммирует его. Я не прошу конкретного решения, у меня его есть. Не означает, что я доволен этим и задавался вопросом, как другие люди справляются с такими проблемами. – Chez