@@ -2,16 +2,22 @@ package me.sujanpoudel.playdeals.jobs
2
2
3
3
import me.sujanpoudel.playdeals.common.SIMPLE_NAME
4
4
import me.sujanpoudel.playdeals.common.loggingExecutionTime
5
+ import me.sujanpoudel.playdeals.logger
5
6
import me.sujanpoudel.playdeals.repositories.DealRepository
6
7
import org.jobrunr.jobs.lambdas.JobRequest
8
+ import org.jobrunr.jobs.states.StateName
7
9
import org.jobrunr.scheduling.JobRequestScheduler
8
10
import org.jobrunr.scheduling.RecurringJobBuilder
11
+ import org.jobrunr.storage.StorageProvider
9
12
import java.time.Duration
13
+ import java.time.Instant
14
+ import java.time.temporal.ChronoUnit
10
15
import java.util.UUID
11
16
12
17
class AndroidAppExpiryCheckScheduler (
13
18
private val repository : DealRepository ,
14
- private val requestScheduler : JobRequestScheduler
19
+ private val requestScheduler : JobRequestScheduler ,
20
+ private val storageProvider : StorageProvider
15
21
) : CoJobRequestHandler<AndroidAppExpiryCheckScheduler.Request>() {
16
22
17
23
override suspend fun handleRequest (jobRequest : Request ): Unit = loggingExecutionTime(
@@ -21,6 +27,10 @@ class AndroidAppExpiryCheckScheduler(
21
27
.map { AppDetailScrapper .Request (it.id) }
22
28
23
29
requestScheduler.enqueue(apps)
30
+
31
+ val lastUpdatedTime = Instant .now().minus(1 , ChronoUnit .HOURS )
32
+ val jobs = storageProvider.deleteJobsPermanently(StateName .FAILED , lastUpdatedTime)
33
+ logger.info(" deleted FAILED `$jobs `" )
24
34
}
25
35
26
36
class Request private constructor() : JobRequest {
0 commit comments