55using ServiceLayer . Mesh . Data ;
66using ServiceLayer . Mesh . Messaging ;
77using ServiceLayer . Mesh . Models ;
8+ using ServiceLayer . Mesh . Configuration ;
89
910namespace ServiceLayer . Mesh . Functions
1011{
1112 public class FileRetryFunction (
1213 ILogger < FileRetryFunction > logger ,
1314 IMeshInboxService meshInboxService ,
1415 ServiceLayerDbContext serviceLayerDbContext ,
15- IFileExtractQueueClient fileExtractQueueClient )
16+ IFileExtractQueueClient fileExtractQueueClient ,
17+ IFileTransformQueueClient fileTransformQueueClient ,
18+ IFileRetryFunctionConfiguration configuration )
1619 {
1720 [ Function ( "FileRetryFunction" ) ]
1821 public async Task Run ( [ TimerTrigger ( "%FileRetryTimerExpression%" ) ] TimerInfo myTimer )
1922 {
2023 logger . LogInformation ( $ "FileRetryFunction started at: { DateTime . Now } ") ;
2124
22- var twelveHoursAgo = DateTime . UtcNow . AddHours ( - 12 ) ;
25+ var overdueAnUpdateDateTime = DateTime . UtcNow . AddHours ( - Convert . ToInt32 ( configuration . StaleHours ) ) ;
2326
2427 var files = await serviceLayerDbContext . MeshFiles
2528 . Where ( f =>
2629 ( f . Status == MeshFileStatus . Discovered ||
2730 f . Status == MeshFileStatus . Extracting ||
2831 f . Status == MeshFileStatus . Extracted ||
29- f . Status == MeshFileStatus . Transforming ) && f . LastUpdatedUtc <= twelveHoursAgo )
32+ f . Status == MeshFileStatus . Transforming ) && f . LastUpdatedUtc <= overdueAnUpdateDateTime )
3033 . ToListAsync ( ) ;
3134
32- logger . LogInformation ( $ "FileRetryFunction, { files . Count } stale files found") ;
35+ logger . LogInformation ( $ "FileRetryFunction: { files . Count } stale files found") ;
3336
3437 foreach ( var file in files )
3538 {
@@ -38,12 +41,14 @@ public async Task Run([TimerTrigger("%FileRetryTimerExpression%")] TimerInfo myT
3841 await fileExtractQueueClient . EnqueueFileExtractAsync ( file ) ;
3942 file . LastUpdatedUtc = DateTime . UtcNow ;
4043 await serviceLayerDbContext . SaveChangesAsync ( ) ;
44+ logger . LogInformation ( $ "FileRetryFunction: File { file . FileId } enqueued to Extract queue") ;
4145 }
4246 else if ( file . Status == MeshFileStatus . Extracted || file . Status == MeshFileStatus . Transforming )
4347 {
44- // await fileExtractQueueClient.EnqueueFileExtractAsync (file);
48+ await fileTransformQueueClient . EnqueueFileTransformAsync ( file ) ;
4549 file . LastUpdatedUtc = DateTime . UtcNow ;
4650 await serviceLayerDbContext . SaveChangesAsync ( ) ;
51+ logger . LogInformation ( $ "FileRetryFunction: File { file . FileId } enqueued to Transform queue") ;
4752 }
4853 }
4954 }
0 commit comments