Skip to content

Commit 230c338

Browse files
committed
add delete temp file job;
1 parent ba4dd93 commit 230c338

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed

src/WebSite/Jobs/FileCleanerJob.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using Quartz;
2+
3+
namespace WebSite.Jobs;
4+
5+
public class FileCleanerJob(IWebHostEnvironment env) : IJob
6+
{
7+
public Task Execute(IJobExecutionContext context)
8+
{
9+
var directoryPath = Path.Combine(env.WebRootPath, "IconFolder");
10+
try
11+
{
12+
var files = Directory.GetFiles(directoryPath);
13+
foreach (var file in files)
14+
{
15+
var creationTime = File.GetCreationTime(file);
16+
if ((DateTime.Now - creationTime).TotalMinutes > 2)
17+
{
18+
File.Delete(file);
19+
}
20+
}
21+
}
22+
catch (Exception ex)
23+
{
24+
// Handle exceptions, e.g., log them
25+
Console.WriteLine($"Error: {ex.Message}");
26+
}
27+
28+
return Task.CompletedTask;
29+
}
30+
}

src/WebSite/Program.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
using FluentValidation.AspNetCore;
44
using Microsoft.AspNetCore.ResponseCompression;
55
using Microsoft.Extensions.WebEncoders;
6+
using Quartz;
67
using Scalar.AspNetCore;
78
using System.IO.Compression;
89
using System.Text.Encodings.Web;
910
using System.Text.Unicode;
11+
using Quartz.AspNetCore;
12+
using WebSite.Jobs;
1013
using WebSite.Options;
1114

1215
var builder = WebApplication.CreateBuilder(args);
@@ -41,6 +44,24 @@
4144
builder.Services.Configure<OpenAIOption>(builder.Configuration.GetSection("OpenAI"));
4245

4346
builder.Services.AddOpenApi();
47+
48+
builder.Services.AddTransient<FileCleanerJob>();
49+
builder.Services.AddQuartz(q =>
50+
{
51+
var jobKey = new JobKey("fileCleanerJob", "group1");
52+
q.AddJob<FileCleanerJob>(opts => opts.WithIdentity(jobKey));
53+
54+
q.AddTrigger(opts => opts
55+
.ForJob(jobKey)
56+
.WithIdentity("fileCleanerTrigger", "group1")
57+
.StartNow()
58+
.WithSimpleSchedule(x => x
59+
.WithIntervalInMinutes(2)
60+
.RepeatForever()));
61+
});
62+
63+
builder.Services.AddQuartzHostedService(q => q.WaitForJobsToComplete = true);
64+
4465
var app = builder.Build();
4566

4667
using (var serviceScope = app.Services.CreateScope())

src/WebSite/WebSite.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<PackageReference Include="Known.Core" Version="3.1.9" />
1717
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.0-preview.1.25120.3" />
1818
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.21.2" />
19+
<PackageReference Include="Quartz.AspNetCore" Version="3.14.0" />
1920
<PackageReference Include="Scalar.AspNetCore" Version="2.0.26" />
2021
<PackageReference Include="Microsoft.SemanticKernel" Version="1.40.1" />
2122
<ProjectReference Include="..\CodeWF\CodeWF.csproj" />

0 commit comments

Comments
 (0)