Skip to content

Commit eb3498f

Browse files
authored
Merge pull request #1820 from UNC-Libraries/bxc-4541
BXC-4541 - Tuning of cantaloupe cache invalidation
2 parents af7d41c + 61e818b commit eb3498f

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

services-camel-app/src/main/java/edu/unc/lib/boxc/services/camel/images/ImageEnhancementsRouter.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
public class ImageEnhancementsRouter extends RouteBuilder {
2222
private static final Logger log = getLogger(ImageEnhancementsRouter.class);
2323

24+
private static final int CACHE_INVALIDATE_THREADS = 5;
25+
private static final int CACHE_INVALIDATE_REQUESTS_PER_SEC = 10;
26+
2427
@BeanInject(value = "addAccessCopyProcessor")
2528
private AddDerivativeProcessor addAccessCopyProcessor;
2629

@@ -59,7 +62,12 @@ public void configure() throws Exception {
5962
.recipientList(simple("exec:/bin/sh?args=${properties:cdr.enhancement.bin}/convertJp2.sh "
6063
+ "${headers[CdrImagePath]} ${headers[CdrMimeType]} ${headers[CdrTempPath]}"))
6164
.bean(addAccessCopyProcessor)
62-
.bean(imageCacheInvalidationProcessor)
65+
// Process cache invalidation asynchronously with a limited number of threads
66+
.threads(CACHE_INVALIDATE_THREADS)
67+
// Limit the max number of requests per second
68+
.throttle(CACHE_INVALIDATE_REQUESTS_PER_SEC)
69+
.bean(imageCacheInvalidationProcessor)
70+
.end()
6371
.endDoTry()
6472
.doFinally()
6573
.bean(addAccessCopyProcessor, "cleanupTempFile")

services-camel-app/src/main/webapp/WEB-INF/service-context.xml

+2
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@
9898
<!-- ACL related beans -->
9999
<bean id="httpClientConnectionManager" class="org.apache.http.impl.conn.PoolingHttpClientConnectionManager"
100100
destroy-method="shutdown">
101+
<property name="maxTotal" value="100" />
102+
<property name="defaultMaxPerRoute" value="5"/>
101103
</bean>
102104

103105
<bean id="sparqlQueryService" class="edu.unc.lib.boxc.model.fcrepo.sparql.FusekiSparqlQueryServiceImpl">

0 commit comments

Comments
 (0)