File tree Expand file tree Collapse file tree 1 file changed +10
-6
lines changed
Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Original file line number Diff line number Diff line change @@ -161,20 +161,24 @@ private async Task CleanupDatabase()
161161
162162 var cutoffTime = DateTime . UtcNow - TimeSpan . FromDays ( 30 ) ;
163163
164- // Remove old runners
165- var oldRunners = await db . Runners
166- . Where ( r => r . CreatedTime < cutoffTime )
164+ // Remove old runners - find runners where their earliest lifecycle event is older than 30 days
165+ var oldRunnerIds = await db . RunnerLifecycles
166+ . GroupBy ( rl => rl . RunnerId )
167+ . Select ( g => new { RunnerId = g . Key , OldestEvent = g . Min ( rl => rl . EventTimeUtc ) } )
168+ . Where ( r => r . OldestEvent < cutoffTime )
169+ . Select ( r => r . RunnerId )
167170 . ToListAsync ( ) ;
168171
169- if ( oldRunners . Count > 0 )
172+ if ( oldRunnerIds . Count > 0 )
170173 {
174+ var oldRunners = await db . Runners . Where ( r => oldRunnerIds . Contains ( r . RunnerId ) ) . ToListAsync ( ) ;
171175 _logger . LogInformation ( $ "Removing { oldRunners . Count } runners older than 30 days from database") ;
172176 db . Runners . RemoveRange ( oldRunners ) ;
173177 }
174178
175- // Remove old jobs
179+ // Remove old jobs - only remove completed jobs older than 30 days
176180 var oldJobs = await db . Jobs
177- . Where ( j => j . CompleteTime < cutoffTime )
181+ . Where ( j => j . CompleteTime < cutoffTime && j . CompleteTime != DateTime . MinValue )
178182 . ToListAsync ( ) ;
179183
180184 if ( oldJobs . Count > 0 )
You can’t perform that action at this time.
0 commit comments