В настоящее время я работаю над проектом, в котором мы обновляем поиск Hibernate до версии 5.9.2 (с 3.4.2).Мы используем поиск в спящем режиме с Lucene 5.5.5 и Spring boot 1.5.Мы используем hibernate версии 5.2.17.
В свойствах JPA конфигурации менеджера сущностей было установлено следующее свойство:
properties.put("hibernate.search.default.worker.thread_pool.size", "5");
Однако, похоже, что это свойство не имеет никакого эффекта.Во время отладки я заметил, что в «LazyExecutorHolder» Hibernate Search служба executor запускается с нулевым значением и инициализируется с размером пула потоков 1. Ниже приведен фрагмент кода из кода поиска hibernate:
package org.hibernate.search.backend.impl.lucene;
final class LazyExecutorHolder {
/**
* Lazily initialized; state change protected by executorStateWriteLock
*/
private ExecutorService asyncIndexingExecutor;
public void submitTask(LuceneBackendQueueTask task) {
executorStateReadLock.lock();
try {
final ExecutorService executor = asyncIndexingExecutor;
if ( executor != null ) {
executor.submit( task );
return; // !
}
}
finally {
executorStateReadLock.unlock();
}
//If not returned yet, means the executor wasn't available;
//Needs to be started within the exclusive lock.
executorStateWriteLock.lock();
try {
ExecutorService executor = asyncIndexingExecutor;
if ( executor == null ) {
executor = Executors.newFixedThreadPool( 1, threadNamePrefix, maxQueueLength );
this.asyncIndexingExecutor = executor;
}
executor.submit( task );
}
finally {
executorStateWriteLock.unlock();
}
}
...........
Было ли это свойство переименовано / удалено?мы можем настроить размер пула рабочих потоков Lucene любым другим способом?Я не могу найти упоминания об удалении в документации поиска Hibernate.В настоящее время мы наблюдаем снижение производительности после обновления Hibernate и Hibernate Search.