Merge branch 'cli-speed-improvements-periodically-uncache-entities-when-processing-many_7.6' into cli-speed-improvements-periodically-uncache-entities-when-processing-many_7-x

# Conflicts:
#	dspace-api/src/main/java/org/dspace/core/Context.java
#	dspace-api/src/main/java/org/dspace/core/DBConnection.java
#	dspace-api/src/main/java/org/dspace/core/HibernateDBConnection.java
This commit is contained in:
Marie Verdonck
2025-01-29 22:11:03 +01:00

View File

@@ -72,6 +72,7 @@ import org.dspace.discovery.indexobject.IndexableCommunity;
import org.dspace.discovery.indexobject.IndexableItem;
import org.dspace.discovery.indexobject.factory.IndexFactory;
import org.dspace.discovery.indexobject.factory.IndexObjectFactoryFactory;
import org.dspace.discovery.indexobject.factory.ItemIndexFactory;
import org.dspace.eperson.Group;
import org.dspace.eperson.factory.EPersonServiceFactory;
import org.dspace.eperson.service.GroupService;
@@ -341,6 +342,7 @@ public class SolrServiceImpl implements SearchService, IndexingService {
try {
final List<IndexFactory> indexableObjectServices = indexObjectServiceFactory.
getIndexFactories();
int indexObject = 0;
for (IndexFactory indexableObjectService : indexableObjectServices) {
if (type == null || StringUtils.equals(indexableObjectService.getType(), type)) {
final Iterator<IndexableObject> indexableObjects = indexableObjectService.findAll(context);
@@ -348,6 +350,10 @@ public class SolrServiceImpl implements SearchService, IndexingService {
final IndexableObject indexableObject = indexableObjects.next();
indexContent(context, indexableObject, force);
context.uncacheEntity(indexableObject.getIndexedObject());
indexObject++;
if ((indexObject % 100) == 0 && indexableObjectService instanceof ItemIndexFactory) {
context.uncacheEntities();
}
}
}
}