Skip to content

Commit f4c7b0e

Browse files
authored
Merge pull request #58 from thughari/dev
pr: memory fix
2 parents 22a39e9 + d3c4bbf commit f4c7b0e

File tree

10 files changed

+14
-17
lines changed

10 files changed

+14
-17
lines changed

backend/service.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ spec:
1818
env:
1919
- name: SPRING_PROFILES_ACTIVE
2020
value: "prod"
21+
22+
- name: JAVA_TOOL_OPTIONS
23+
value: "-XX:MaxRAMPercentage=75.0 -XX:ActiveProcessorCount=2 -XX:+UseG1GC -XX:+ExitOnOutOfMemoryError"
2124

2225
- name: JDBC_URL
2326
valueFrom:

backend/src/main/java/com/thughari/jobtrackerpro/config/AsyncConfig.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ public class AsyncConfig {
1515

1616
@Bean(name = "dashboardExecutor")
1717
public AsyncTaskExecutor dashboardExecutor() {
18-
return new TaskExecutorAdapter(
19-
Executors.newThreadPerTaskExecutor(Thread.ofVirtual().name("DashVT-", 0).factory()));
18+
return new TaskExecutorAdapter(Executors.newThreadPerTaskExecutor(Thread.ofVirtual().name("DashVT-", 0).factory()));
2019
}
2120

2221
@Primary

backend/src/main/java/com/thughari/jobtrackerpro/config/CacheConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ CacheManager cacheManager() {
1919
CaffeineCacheManager cacheManager = new CaffeineCacheManager();
2020

2121
cacheManager.setCaffeine(Caffeine.newBuilder()
22-
.initialCapacity(100)
23-
.maximumSize(500)
24-
.expireAfterWrite(30, TimeUnit.MINUTES)
22+
.initialCapacity(50)
23+
.maximumSize(250)
24+
.expireAfterWrite(10, TimeUnit.MINUTES)
2525
.recordStats());
2626

2727
return cacheManager;

backend/src/main/java/com/thughari/jobtrackerpro/entity/Job.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,5 @@ public class Job {
4747
private String url;
4848

4949
@Column(columnDefinition = "TEXT")
50-
private String notes; //ALTER TABLE jobs ALTER COLUMN notes TYPE TEXT;
50+
private String notes;
5151
}

backend/src/main/java/com/thughari/jobtrackerpro/service/EmailService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public void sendResetEmail(String to, String token) {
7070
}
7171
}
7272

73-
@Async
73+
@Async("taskExecutor")
7474
public void sendForwardingHelper(String to, String code, String link) {
7575
try {
7676
MimeMessage message = mailSender.createMimeMessage();

backend/src/main/java/com/thughari/jobtrackerpro/service/GeminiExtractionService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ private String buildBatchPrompt(List<EmailBatchItem> items) {
104104
String rawBody = item.body() == null ? "" : item.body();
105105

106106
String trimmed = UrlParser.trimNoise(rawBody);
107-
String safeBody = trimmed.length() > 6000
108-
? trimmed.substring(0, 6000)
107+
String safeBody = trimmed.length() > 3000
108+
? trimmed.substring(0, 3000 )
109109
: trimmed;
110110

111111
List<String> urls = UrlParser.extractAndCleanUrls(rawBody);

backend/src/main/java/com/thughari/jobtrackerpro/service/GmailWebhookService.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,11 @@
1111
import com.thughari.jobtrackerpro.interfaces.GeminiService;
1212
import com.thughari.jobtrackerpro.repo.UserRepository;
1313
import com.thughari.jobtrackerpro.util.CacheEvictService;
14-
import com.thughari.jobtrackerpro.util.UrlParser;
1514

1615
import lombok.extern.slf4j.Slf4j;
1716
import org.springframework.beans.factory.annotation.Value;
18-
import org.springframework.cache.Cache;
19-
import org.springframework.cache.CacheManager;
2017
import org.springframework.scheduling.annotation.Async;
2118
import org.springframework.stereotype.Service;
22-
import org.springframework.transaction.annotation.Transactional;
2319

2420
import java.math.BigInteger;
2521
import java.time.Instant;

backend/src/main/java/com/thughari/jobtrackerpro/service/JobService.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
import lombok.extern.slf4j.Slf4j;
1313
import org.springframework.beans.BeanUtils;
14-
import org.springframework.cache.Cache;
1514
import org.springframework.cache.CacheManager;
1615
import org.springframework.cache.annotation.CacheEvict;
1716
import org.springframework.cache.annotation.Cacheable;

backend/src/main/java/com/thughari/jobtrackerpro/util/UrlParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ public static String trimNoise(String body) {
3232
int index = body.indexOf(marker);
3333
if (index > 0) body = body.substring(0, index);
3434
}
35-
return body.length() > 5000 ? body.substring(0, 5000) : body;
35+
return body.length() > 3000 ? body.substring(0, 3000 ) : body;
3636
}
3737
}

backend/src/main/resources/application-prod.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ server.port=8080
55
spring.datasource.url=${JDBC_URL}
66
spring.datasource.username=${JDBC_USER}
77
spring.datasource.password=${JDBC_PASS}
8-
spring.datasource.hikari.maximum-pool-size=30
8+
spring.datasource.hikari.maximum-pool-size=15
99
spring.datasource.hikari.minimum-idle=5
10-
spring.datasource.hikari.connection-timeout=30000
10+
spring.datasource.hikari.connection-timeout=20000
1111
spring.datasource.hikari.idle-timeout=600000
1212
spring.datasource.hikari.max-lifetime=1800000
1313
spring.datasource.hikari.pool-name=JobTrackerPro-HikariPool

0 commit comments

Comments
 (0)