Обновление демона Hibernate - PullRequest
0 голосов
/ 11 октября 2011

У меня довольно интенсивное обновление, и мне было интересно, если это хорошая идея, чтобы иметь поток демона, который имеет сеанс гибернации, который принимает инструкции по обновлению и группирует эти обновления в пакет (что, я думаю, более эффективно).

Заранее спасибо.

1 Ответ

0 голосов
/ 12 октября 2011

Если ваши сценарии использования вызывают много обновлений, но эти обновления не обязательно должны выполняться правильно, когда они запускаются (например, данные, которые они добавляют, не являются обязательными на месте), вы можете и на самом деле рекомендуется хранить их. и выполнять их позже (например, ночью или когда приложение менее сильно поражено). Вам не обязательно нужен демон (или любой другой) поток для этого, просто храните где-нибудь свои запросы на обновление, а затем выполняйте задание CRON или что-то еще через определенные промежутки времени и выполняйте их. Для этого вы можете использовать Quartz Scheduler , он будет обрабатывать все основные потоки / планирование.

Также в отношении пакетирования нескольких запросов и их отдельного выполнения, обычно Hibernate позаботится об этом (например, если вы отправляете несколько запросов на обновление в одной транзакции, Hibernate будет пакетировать их вместе и выполнять в самое позднее возможное время - обычно, когда транзакция заканчивается), так что это не должно беспокоить вас. Что МОЖЕТ стать проблемой, в зависимости от вашего количества запросов на обновление, так это сам Hibernate. В какой-то момент вы можете рассмотреть возможность использования JDBC и пакетного выполнения этих обновлений вручную для повышения производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...