Как восстановить минимизированное окно без мерцания

Наконец, я нашел решение проблемы. Проблема заключается в том, что имя узла является именем узла главного имени FQ, но имя подчиненного узла не имеет домена. Также добавлены оба имени узла в файл / etc / hosts

Для кластеризации ejabberd, пожалуйста, обратитесь к следующим шагам.

Перед запуском настройте правильные записи в файлах / etc / hosts обоих узлов. то есть узлы должны разрешать друг друга, используя их имена хостов. задайте имя узла ejaberd в файле ejabberd.cfg, оба узла должны иметь разные имена узлов.

1.сконфигурируйте ejabberd в одном главном узле с правильным именем узла (либо полное доменное имя, либо просто имя вашего удобства)

2.конфигурируйте подчиненный узел с той же конфигурацией, что и у главного, т.е. бот-узлы должны иметь одинаковую конфигурацию в файле ejabberd.yml)

3.copy erlang.cookie от главного узла к подчиненному, и пользователь ejabberd должен иметь права на чтение файла cookie.

4. Запустите главный узел в режиме реального времени (ejabberdctl live)

5. Запустите подчиненный узел в режиме реального времени

6. Проверьте значение cookie в консоли erlang обоих узлов, используя команда 'erlang: get_cookie ().' оба узла должны иметь одинаковое значение.

7.Если бот-узлы имеют одинаковое значение, тогда выполните «ejabberdctl - not-timeout join_cluser ejabberd @ nodename» в ведомом устройстве. измените ejabberd @ nodename в соответствии с вашей средой. В моем случае я запустил ejabberd с пользователем 'ejabberd' с именем узла как ejabberd @ cluster-node1 (Если вы хотите, вы можете использовать также полное доменное имя, например, ejabberd@example.com)

8. Если выполнена команда abode без каких-либо ошибок узлы находятся в кластере

9. Подтвердите кластер в любой консоли erlang с помощью команды mnesia: info (). здесь вы получите подробности об узле в "running_db_nodes"

10. Ура, вы закончили ...

Для балансировки нагрузки кластера вы можете использовать HAProxy

Пожалуйста, обратитесь https://blog.onefellow.com/post/76702632637/haproxy-and-ejabberd за подробностями

Я не выполнил балансировку нагрузки, используя какой-либо аппаратный балансировщик нагрузки, нужно проверить это.

Если кто-то сделал это, пожалуйста, напишите здесь ..

6
задан 8 December 2008 в 17:46
поделиться

3 ответа

Один способ сделать это состоит в том, чтобы использовать метод двойной буферизации: нарисуйте к внеэкранному битовому массиву, затем восстановите, затем блитируйте битовый массив на экран. Но на излишество кажется, что, если восстановление минимизированного окна является единственным сценарием, где это необходимо. Возможно, у других будут лучшие идеи?..

Кроме того, при рисовании всей клиентской области окна можно отключить WM_ERASEBKGND (или скорее сказать обработку его, но ничего не делайте) избегать ненужной последовательности fill-with-background-then-redraw.

2
ответ дан 17 December 2019 в 18:20
поделиться

Эта ссылка на MSDN объяснит, как Вы хотели бы обработать рисование окна в своем случае. События окна как окно обновляют или минимизируют/максимизируют, потребует перекрашивания Вашего окна или региона окна.

Счастливое кодирование!!

1
ответ дан 17 December 2019 в 18:20
поделиться

Я - OP..., случайно съел мой cookie.

Изученный, как окна flip3d и панель задач управляют этим немного ближе и они на самом деле перекрашивают окно, прежде чем они запустят анимацию ползунка. Попытайтесь минимизировать окно и затем восстановить его с flip3d, Вы будете видеть, что восстанавливается маленькое мигание на 3-м окне перед ним.

Попробованный то же самое моим приложением и это выглядит намного лучше, не идеальный но приемлемый:/

0
ответ дан 17 December 2019 в 18:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: