Настройки сайта меняются при каждой установке в Ubuntu для разработки

Привет, я создаю форумный сайт.

Я попытался изменить настройки сайта и обновить его, но изменения значений применяются нестабильно.

При каждом обновлении, похоже, отображаются ранее закэшированные значения.

Я изменил количество рабочих процессов Puma, но это не помогло.

Изменённое значение записывается в базу данных.

Возможно, проблема в message_bus?
Если да, как мне изменить конфигурацию?

Пожалуйста, ответьте мне. Спасибо!

Как именно вы установили Discourse?

Я наблюдаю то же самое. Если установить количество воркеров Puma равным 1, проблема исчезает. Похоже, что каждый воркер хранит копию объекта настроек сайта, и когда один воркер выполняет обновление, другие воркеры об этом не узнают.

К сожалению, эта проблема также присутствует в масштабируемой среде с несколькими серверами Discourse, поэтому простое установление количества воркеров в 1 не является полным решением.

Мне нужно задать тот же вопрос: как именно вы установили Discourse?

При установке единственным поддерживаемым способом мы не используем Puma, и эта ошибка отсутствует.

Я пытаюсь заняться разработкой плагина, поэтому перешёл по ссылке в README, чтобы настроить среду разработки на Ubuntu. Когда я запускаю команду bundle exec rails server --binding=0.0.0.0, приложение запускается с помощью Puma.

Единственное подобное, что я видел, — это когда сервер остановлен, браузер иногда возвращает JSON-файл или кэшированную версию сайта.

Сервер всё ещё запущен?

Ещё один приём, который я использую: открыть другой терминал и выполнить

./bin/rails c

Затем изменить настройки, например:

SiteSetting.title=“my title”

Сервер всё ещё работает. Я проверил логи и убедился, что Discourse обрабатывает запрос. Также во время отладки я отключил кэш в консоли разработчика браузера.

Зачем вы масштабируете систему во время разработки плагинов?

Симптомы указывают на то, что ваш внутренний MessageBus не работает корректно, следовательно, проблема в настройке Redis. Живые обновления в браузере также могут быть неработоспособны.

Я не планировал масштабировать разработку плагинов, просто тестировал это в нескольких сценариях, чтобы сузить круг проблемы и убедиться, что я правильно её понимаю. Если MessageBus должен обрабатывать это, я изучу этот вопрос подробнее.

В процессе отладки я заметил, что app/models/site_setting.rb по-прежнему вызывает событие :site_setting_saved, которое, похоже, было удалено из приложения и заменено на :site_setting_changed. Теперь никто не слушает событие :site_setting_saved.

Вы также можете запустить веб-сервер Unicorn в режиме разработки с помощью bin/unicorn.