Случайные проблемы, создающие новые типы в Dexterity TTW

#plone

#plone

Вопрос:

Я только что установил dexterity на сайт интрасети нашего офиса, чтобы я мог создавать некоторые новые типы для определенных стилей документов. Я надеялся использовать только возможности TTW, но я вижу необычное поведение. Когда я пытаюсь создать поля нового типа, можно увидеть любую или все следующие проблемы, которые почти недетерминированны:

  • После сохранения атрибутов нового поля поле иногда не отображается на странице с полями этого нового типа.
  • Иногда при повторной загрузке страницы это отображается, в других случаях — нет.
  • При нажатии на настройки для поля (когда оно видно) иногда отображается диалоговое окно с ошибкой, указывающее, что эта страница не существует.
  • Иногда появляется диалоговое окно настроек, а затем попытки сохранить его завершаются неудачей с другим диалогом об ошибке, в котором говорится, что эта страница не существует.

Проявив некоторую настойчивость, часто повторяя попытки и обновляя, я могу получить тип, определенный с помощью пары полей. Затем, когда я создаю экземпляр этого нового типа, часто в форме создания отображается только некоторое подмножество этих новых полей. Когда я пытаюсь сохранить его, форма отображается снова, но на этот раз с обязательными полями, которые изначально были скрыты, теперь выделены красным. При окончательном сохранении этого объекта он отображается с отсутствующими некоторыми полями (но не всеми).

Это кажется совершенно случайным.

Я добавил следующее в свою сборку:

 extends =
    base.cfg
    versions.cfg
    http://good-py.appspot.com/release/dexterity/1.0.3?plone=4.1

...
eggs = 
    ...
    plone.app.dexterity
  

Мой Plone — это:

 Plone 4111
CMF 2.2.4
Zope 2.13.8
  

В event.log нет никаких сообщений о возникновении этой проблемы.

Приветствуются любые идеи.

Комментарии:

1. в пакетах, закрепленных в Dexterity KGS 1.0.3, обнаружены некоторые ошибки; пожалуйста, используйте вместо этого следующее: good-py.appspot.com/release/dexterity/1.0.3-1?plone=4.1

Ответ №1:

Есть ли у вас сервер кэширования перед Plone? Возможно, это слишком агрессивно и кэширует устаревший контент. Попробуйте получить доступ к Plone напрямую, без промежуточных серверов кэширования, и посмотрите, поможет ли это.

Комментарии:

1. Я как раз вводил ответ, когда пришел ваш. Похоже, это связано с интерфейсом apache, который я настроил на использование proxy_balancer. Таким образом, переход через порт 8080 непосредственно к одному из экземпляров plone позволяет ему работать. Спасибо.

2. Обратите внимание, что наличие промежуточного сервера кэширования по-прежнему является хорошей идеей в большинстве случаев, но здесь, по-видимому, требуется небольшая настройка.

3. Абсолютно. Я по-прежнему сохраню балансировщик нагрузки — у меня пока не нашлось времени для создания интерфейса кэширования, такого как varnish. Я надеюсь, что varnish более мощный в настройке для балансировки нагрузки, чтобы взаимодействие клиентов с объектами dexterity не нарушалось.