From 698c79fa3b6a102b9df612164b5ee6b4c267080e Mon Sep 17 00:00:00 2001 From: Hari Date: Wed, 10 Jun 2026 14:02:39 +0530 Subject: [PATCH] out of async for cost optimizaion --- backend/service.yaml | 6 ++++-- .../com/thughari/jobtrackerpro/service/EmailService.java | 5 +---- .../jobtrackerpro/service/GmailIntegrationService.java | 4 +--- .../thughari/jobtrackerpro/service/GmailWebhookService.java | 3 +-- .../thughari/jobtrackerpro/service/IngestionService.java | 3 +-- .../thughari/jobtrackerpro/service/UserDeletionService.java | 3 +-- 6 files changed, 9 insertions(+), 15 deletions(-) diff --git a/backend/service.yaml b/backend/service.yaml index b9c1ae9..44133b4 100644 --- a/backend/service.yaml +++ b/backend/service.yaml @@ -8,8 +8,10 @@ spec: template: metadata: annotations: - autoscaling.knative.dev/minScale: "1" + autoscaling.knative.dev/minScale: "0" autoscaling.knative.dev/maxScale: "5" + run.googleapis.com/cpu-throttling: "true" + run.googleapis.com/startup-cpu-boost: "true" spec: timeoutSeconds: 300 containers: @@ -25,7 +27,7 @@ spec: value: "prod" - name: JAVA_TOOL_OPTIONS - value: "-Xms256m -Xmx512m -XX:+UseG1GC -XX:+ExitOnOutOfMemoryError" + value: "-Xms256m -Xmx512m -XX:+UseSerialGC -XX:+ExitOnOutOfMemoryError" - name: JDBC_URL valueFrom: diff --git a/backend/src/main/java/com/thughari/jobtrackerpro/service/EmailService.java b/backend/src/main/java/com/thughari/jobtrackerpro/service/EmailService.java index 0b944e2..5cf62a7 100644 --- a/backend/src/main/java/com/thughari/jobtrackerpro/service/EmailService.java +++ b/backend/src/main/java/com/thughari/jobtrackerpro/service/EmailService.java @@ -4,7 +4,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; -import org.springframework.scheduling.annotation.Async; + import org.springframework.stereotype.Service; import jakarta.mail.MessagingException; @@ -29,7 +29,6 @@ public class EmailService { @Value("${email.sender_name}") private String fromName; - @Async("taskExecutor") public void sendResetEmail(String to, String token) { try { MimeMessage message = mailSender.createMimeMessage(); @@ -70,7 +69,6 @@ public void sendResetEmail(String to, String token) { } } - @Async("taskExecutor") public void sendForwardingHelper(String to, String code, String link) { try { MimeMessage message = mailSender.createMimeMessage(); @@ -107,7 +105,6 @@ public void sendForwardingHelper(String to, String code, String link) { } } - @Async("taskExecutor") public void sendVerificationEmail(String to, String token) { try { MimeMessage message = mailSender.createMimeMessage(); diff --git a/backend/src/main/java/com/thughari/jobtrackerpro/service/GmailIntegrationService.java b/backend/src/main/java/com/thughari/jobtrackerpro/service/GmailIntegrationService.java index 1479cf2..ffb9d30 100644 --- a/backend/src/main/java/com/thughari/jobtrackerpro/service/GmailIntegrationService.java +++ b/backend/src/main/java/com/thughari/jobtrackerpro/service/GmailIntegrationService.java @@ -23,7 +23,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Caching; -import org.springframework.scheduling.annotation.Async; + import org.springframework.stereotype.Service; import org.springframework.web.client.RestClient; @@ -122,7 +122,6 @@ public void connectAndSetupPush(String authCode, String email) throws Exception log.info("User {} successfully connected Gmail. Watch set with label ID: {}", email, labelId); } - @Async("taskExecutor") public void initiateManualSync(String email) { LocalDateTime now = LocalDateTime.now(); @@ -340,7 +339,6 @@ public void disconnectGmail(String email) { cleanupGoogleResourcesAsync(refreshToken, labelId); } - @Async("taskExecutor") protected void cleanupGoogleResourcesAsync(String refreshToken, String labelId) { try { String accessToken = getFreshAccessToken(refreshToken); diff --git a/backend/src/main/java/com/thughari/jobtrackerpro/service/GmailWebhookService.java b/backend/src/main/java/com/thughari/jobtrackerpro/service/GmailWebhookService.java index 122f3de..ba1995f 100644 --- a/backend/src/main/java/com/thughari/jobtrackerpro/service/GmailWebhookService.java +++ b/backend/src/main/java/com/thughari/jobtrackerpro/service/GmailWebhookService.java @@ -14,7 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.annotation.Async; + import org.springframework.stereotype.Service; import java.math.BigInteger; @@ -49,7 +49,6 @@ public GmailWebhookService(GeminiService geminiService, JobService jobService, U this.cacheEvictService = cacheEvictService; } - @Async("taskExecutor") public void processHistorySync(String userEmail) { final String email = userEmail.toLowerCase(); diff --git a/backend/src/main/java/com/thughari/jobtrackerpro/service/IngestionService.java b/backend/src/main/java/com/thughari/jobtrackerpro/service/IngestionService.java index 914b5dc..e199379 100644 --- a/backend/src/main/java/com/thughari/jobtrackerpro/service/IngestionService.java +++ b/backend/src/main/java/com/thughari/jobtrackerpro/service/IngestionService.java @@ -5,7 +5,7 @@ import com.thughari.jobtrackerpro.interfaces.GeminiService; import com.thughari.jobtrackerpro.repo.UserRepository; import lombok.extern.slf4j.Slf4j; -import org.springframework.scheduling.annotation.Async; + import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,7 +23,6 @@ public IngestionService(GeminiService geminiService, JobService jobService, User this.userRepository = userRepository; } - @Async("taskExecutor") @Transactional public void handleManualForward(String from, String subject, String body, String userEmail) { User user = userRepository.findByEmail(userEmail).orElse(null); diff --git a/backend/src/main/java/com/thughari/jobtrackerpro/service/UserDeletionService.java b/backend/src/main/java/com/thughari/jobtrackerpro/service/UserDeletionService.java index 6049b28..c7aba7f 100644 --- a/backend/src/main/java/com/thughari/jobtrackerpro/service/UserDeletionService.java +++ b/backend/src/main/java/com/thughari/jobtrackerpro/service/UserDeletionService.java @@ -15,7 +15,7 @@ import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Caching; -import org.springframework.scheduling.annotation.Async; + import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -115,7 +115,6 @@ public DeletionWarning checkPendingDeletion(String email) { * Ensures complete cleanup across all systems */ @Transactional - @Async public void deleteUserCompletely(String email) { User user = userRepository.findByEmail(email)