This is an automated email from the ASF dual-hosted git repository.

adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 677761238 FINERACT-2066: Remove parallelization of external event 
status update
677761238 is described below

commit 677761238d7a93e70f0a3920fcc9affeb8930674
Author: Adam Saghy <[email protected]>
AuthorDate: Wed Apr 17 16:52:51 2024 +0200

    FINERACT-2066: Remove parallelization of external event status update
---
 .../event/external/jobs/SendAsynchronousEventsTasklet.java        | 8 +-------
 .../event/external/repository/ExternalEventRepository.java        | 2 --
 2 files changed, 1 insertion(+), 9 deletions(-)

diff --git 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java
 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java
index 91746f13b..51ef86d69 100644
--- 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java
+++ 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java
@@ -34,9 +34,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.fineract.avro.MessageV1;
 import 
org.apache.fineract.infrastructure.configuration.domain.ConfigurationDomainService;
 import org.apache.fineract.infrastructure.core.config.FineractProperties;
-import org.apache.fineract.infrastructure.core.domain.FineractContext;
 import org.apache.fineract.infrastructure.core.service.DateUtils;
-import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
 import 
org.apache.fineract.infrastructure.event.external.producer.ExternalEventProducer;
 import 
org.apache.fineract.infrastructure.event.external.repository.ExternalEventRepository;
 import 
org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventStatus;
@@ -106,14 +104,10 @@ public class SendAsynchronousEventsTasklet implements 
Tasklet {
         // Partitioning dataset to avoid exception: PreparedStatement can have 
at most 65,535 parameters
         final int partitionSize = 
fineractProperties.getEvents().getExternal().getPartitionSize();
         List<List<Long>> partitions = Lists.partition(eventIds, partitionSize);
-        FineractContext context = ThreadLocalContextUtil.getContext();
-        partitions.stream() //
-                .parallel() //
+        partitions //
                 .forEach(partitionedEventIds -> {
                     measure(() -> {
-                        ThreadLocalContextUtil.init(context);
                         repository.markEventsSent(partitionedEventIds, sentAt);
-                        ThreadLocalContextUtil.reset();
                     }, timeTaken -> {
                         log.debug("Took {}ms to update {} events", 
timeTaken.toMillis(), partitionedEventIds.size());
                     });
diff --git 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/repository/ExternalEventRepository.java
 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/repository/ExternalEventRepository.java
index 49f772b1b..9f7ccbddc 100644
--- 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/repository/ExternalEventRepository.java
+++ 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/repository/ExternalEventRepository.java
@@ -18,7 +18,6 @@
  */
 package org.apache.fineract.infrastructure.event.external.repository;
 
-import jakarta.transaction.Transactional;
 import java.time.LocalDate;
 import java.time.OffsetDateTime;
 import java.util.List;
@@ -41,7 +40,6 @@ public interface ExternalEventRepository extends 
JpaRepository<ExternalEvent, Lo
     void deleteOlderEventsWithSentStatus(@Param("status") ExternalEventStatus 
status,
             @Param("dateForPurgeCriteria") LocalDate dateForPurgeCriteria);
 
-    @Transactional
     @Modifying
     @Query("UPDATE ExternalEvent e SET e.status = 
org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventStatus.SENT,
 e.sentAt = :sentAt WHERE e.id IN :ids")
     void markEventsSent(@Param("ids") List<Long> ids, @Param("sentAt") 
OffsetDateTime sentAt);

Reply via email to