Skip to content

Commit ef16ad4

Browse files
Merge branch 'main' into develop
2 parents 9968a87 + 5b60e39 commit ef16ad4

4 files changed

Lines changed: 18 additions & 2 deletions

File tree

src/main/java/gov/cabinetoffice/gap/adminbackend/config/SubmissionAnonymisationConfigProperties.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@ public class SubmissionAnonymisationConfigProperties {
1313

1414
private int daysBeforeExpiry = 90;
1515

16+
private int batchSize = 500;
17+
1618
}

src/main/java/gov/cabinetoffice/gap/adminbackend/repositories/SubmissionRepository.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import org.springframework.transaction.annotation.Transactional;
1111
import org.springframework.stereotype.Repository;
1212

13+
import org.springframework.data.domain.Pageable;
14+
1315
import java.time.Instant;
1416
import java.time.LocalDateTime;
1517
import java.util.List;
@@ -37,7 +39,16 @@ void updateLastRequiredChecksExportByGrantApplicationIdAndStatus(Instant lastReq
3739
void updateLastRequiredChecksExportBySchemeIdAndStatus(Instant lastRequiredChecksExport, Integer id,
3840
SubmissionStatus status);
3941

40-
List<Submission> findByStatusAndLastUpdatedBefore(SubmissionStatus status, LocalDateTime cutoff);
42+
@Query(value = """
43+
SELECT gs.* FROM grant_submission gs
44+
JOIN grant_advert ga ON ga.scheme_id = gs.scheme_id
45+
WHERE gs.status = :status
46+
AND gs.last_updated < :cutoff
47+
AND ga.closing_date < NOW()
48+
LIMIT :#{#pageable.pageSize}
49+
""", nativeQuery = true)
50+
List<Submission> findByStatusAndLastUpdatedBeforeAndAdvertClosed(@Param("status") String status,
51+
@Param("cutoff") LocalDateTime cutoff, Pageable pageable);
4152

4253
@Transactional
4354
@Modifying

src/main/java/gov/cabinetoffice/gap/adminbackend/schedulers/SubmissionAnonymisationScheduler.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import lombok.extern.log4j.Log4j2;
1010
import net.javacrumbs.shedlock.spring.annotation.SchedulerLock;
1111
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
12+
import org.springframework.data.domain.PageRequest;
1213
import org.springframework.scheduling.annotation.Scheduled;
1314
import org.springframework.stereotype.Service;
1415

@@ -38,7 +39,8 @@ public void anonymiseInactiveSubmissions() {
3839
cutoff);
3940

4041
final List<Submission> dueForAnonymisation = submissionRepository
41-
.findByStatusAndLastUpdatedBefore(SubmissionStatus.IN_PROGRESS, cutoff);
42+
.findByStatusAndLastUpdatedBeforeAndAdvertClosed(SubmissionStatus.IN_PROGRESS.name(), cutoff,
43+
PageRequest.of(0, config.getBatchSize()));
4244

4345
log.info("Found {} submission(s) to anonymise", dueForAnonymisation.size());
4446

src/main/resources/application.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ completion-statistics-scheduler.lock.atLeastFor=5m
5050
submission-anonymisation-scheduler.enabled=false
5151
submission-anonymisation-scheduler.cronExpression=0 0 3 * * ?
5252
submission-anonymisation-scheduler.daysBeforeExpiry=90
53+
submission-anonymisation-scheduler.batchSize=500
5354
submission-anonymisation-scheduler.lock.atMostFor=30m
5455
submission-anonymisation-scheduler.lock.atLeastFor=5m
5556

0 commit comments

Comments
 (0)