feat(新增): 尝试加入quartz

This commit is contained in:
Bunny 2024-08-12 23:49:09 +08:00
parent 63c8032169
commit e48c71c1e1
6 changed files with 90 additions and 9 deletions

View File

@ -9,6 +9,7 @@
<ItemGroup>
<PackageReference Include="Fleck" Version="1.2.0"/>
<PackageReference Include="Lazy.Captcha.Core" Version="2.0.8"/>
<PackageReference Include="Quartz.Extensions.Hosting" Version="3.13.0"/>
</ItemGroup>
<ItemGroup>

View File

@ -0,0 +1,12 @@
using Quartz;
namespace Bunny.Service.Job;
public class HelloJob : IJob
{
public Task Execute(IJobExecutionContext context)
{
Console.WriteLine("Hello World 的自动执行");
return Task.CompletedTask;
}
}

View File

@ -0,0 +1,36 @@
using Bunny.Service.Job;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using NUnit.Framework;
using Quartz;
namespace Bunny.Test.Until.JobTest;
public class JobTest1
{
[Test]
[Obsolete("Obsolete")]
public async Task TestJob()
{
var scheduler = await Host.CreateDefaultBuilder()
.ConfigureServices((_, services) =>
{
services.AddQuartzHostedService(opt => { opt.WaitForJobsToComplete = true; });
services.AddQuartz(q => q.UseMicrosoftDependencyInjectionJobFactory());
})
.Build()
.Services.GetRequiredService<ISchedulerFactory>()
.GetScheduler();
var jobDetail = JobBuilder.Create<HelloJob>()
.WithIdentity("HelloJob", "分组名称")
.Build();
var trigger = TriggerBuilder.Create()
.WithIdentity("HelloJob", "触发器分组")
.StartNow()
.WithSimpleSchedule(x => x.WithIntervalInSeconds(5).WithRepeatCount(5))
.Build();
await scheduler.ScheduleJob(jobDetail, trigger);
await scheduler.Start();
}
}

View File

@ -3,15 +3,48 @@
&lt;Assembly Path="D:\software\Microsoft\Visual Studio\packages\stackexchange.redis\2.7.33\lib\net6.0\StackExchange.Redis.dll" /&gt;&#xD;
&lt;Assembly Path="D:\software\Microsoft\Visual Studio\packages\minio\6.0.2\lib\net7.0\Minio.dll" /&gt;&#xD;
&lt;/AssemblyExplorer&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=eb9da086_002D824a_002D4ac4_002Db755_002D94438e510122/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="Test1" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=22382ad8_002Dcbf4_002D4254_002Da582_002D16e6116533ce/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="TestJob #3" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.NetUtilTest.Encryption32Lower&lt;/TestId&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.NetUtilTest.GetProperties&lt;/TestId&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.Redis.RedisConnect.RedisConnectTest&lt;/TestId&gt;&#xD;
&lt;TestId&gt;xUnit::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.Redis.RedisConnect.RedisConnectTest&lt;/TestId&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.EfCoreTest.EfCoreTest.TestDbConnection&lt;/TestId&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.JobTest.JobTest1.TestJob&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=3350941e_002Db049_002D4958_002D9739_002D2bfbfcc03e72/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="TestJob #4" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.JobTest.JobTest1.TestJob&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=72bdef07_002Da453_002D48bb_002Db9e3_002D1539d922644a/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="TestJob" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.JobTest.JobTest1.TestJob&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=83126680_002Dc767_002D40a2_002Dadfd_002Daa4542ab8b4b/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="TestJob #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.JobTest.JobTest1.TestJob&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=eb9da086_002D824a_002D4ac4_002Db755_002D94438e510122/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="Test1" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;Or&gt;&#xD;
&lt;And&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.NetUtilTest.Encryption32Lower&lt;/TestId&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.NetUtilTest.GetProperties&lt;/TestId&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.Redis.RedisConnect.RedisConnectTest&lt;/TestId&gt;&#xD;
&lt;TestId&gt;xUnit::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.Redis.RedisConnect.RedisConnectTest&lt;/TestId&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.EfCoreTest.EfCoreTest.TestDbConnection&lt;/TestId&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.JobTest.JobTest1.TestJob&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
&lt;Not&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.JobTest.JobTest1.TestJob&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
&lt;/Not&gt;&#xD;
&lt;/And&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;NUnit3x::945BE294-8057-40EE-9A98-5598D1A728B9::net8.0::Bunny.Test.Until.JobTest.JobTest1.TestJob&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
&lt;/Or&gt;&#xD;
&lt;/SessionState&gt;</s:String>

View File

@ -39,7 +39,6 @@ public class Program
app.UseAuthorization();
app.MapControllers();
app.UseRouting();
// app.UseWebSockets();
app.Run();
}

View File

@ -16,9 +16,9 @@
"Audience": "Audience"
},
"Redis": {
"Host": "192.168.3.98",
"Host": "47.120.65.66",
"Port": "6379",
"Password": "123456",
"Password": "02120212",
"DefaultDB": 6,
"AsyncTimeout": 300
}