定时任务

This commit is contained in:
2025-12-10 19:02:09 +08:00
parent d097f8d4d4
commit 6726cdfb52
14 changed files with 547 additions and 475 deletions
@@ -1,31 +1,25 @@
using System;
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Drawing.Printing;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Quartz;
using Quartz.Impl;
using Quartz;
using Quartz.Impl;
namespace BLL
{
namespace BLL
{
public class QuartzServices
{
public static async Task Init()
{
//初始化计划者
StdSchedulerFactory factory = new StdSchedulerFactory();
// StdSchedulerFactory factory = new StdSchedulerFactory(properties);
// StdSchedulerFactory factory = new StdSchedulerFactory(properties);
IScheduler scheduler = await factory.GetScheduler();
var jobAndTriggerMapping = new Dictionary<IJobDetail, IReadOnlyCollection<ITrigger>>();
var jobAndTriggerMapping = new Dictionary<IJobDetail, IReadOnlyCollection<ITrigger>>();
// 将映射关系包装成制度字典集合
var model = new Model.InterFaceTask();
model.Enable = true;
@@ -46,7 +40,7 @@ using System.Threading.Tasks;
Funs.ScheduledTasks = scheduler;
}
public static void ISchedulerShupDown(IScheduler scheduler)
{
scheduler.Shutdown();
@@ -74,15 +68,15 @@ using System.Threading.Tasks;
{
var jobDetail1 = GetJobDetailByInterFaceTaskId(model.InterFaceTaskId);
var trigger1 = GetTriggerByTime(model.InterFaceTaskId, model.Frequency);
await scheduler.ScheduleJob(jobDetail1, trigger1,true);
await scheduler.ScheduleJob(jobDetail1, trigger1, true);
}
else
{
var jobDetail1 = GetJobDetailByInterFaceTaskId(model.InterFaceTaskId);
var trigger1 = GetTriggerByTime(model.InterFaceTaskId, model.Frequency);
await scheduler.ScheduleJob(jobDetail1, trigger1,true);
await scheduler.ScheduleJob(jobDetail1, trigger1, true);
}
}
@@ -91,9 +85,9 @@ using System.Threading.Tasks;
if (scheduler.GetJobDetail(jk, default) != null)
{
await scheduler.DeleteJob(jk, default);
// SyncScheduledTasks(model.InterFaceTaskId, scheduler, 2);
// SyncScheduledTasks(model.InterFaceTaskId, scheduler, 2);
}
}
@@ -119,16 +113,16 @@ using System.Threading.Tasks;
{
if (type == 0)
{
// Funs.ScheduledTasks.Add(InterFaceTaskId, scheduler);
// Funs.ScheduledTasks.Add(InterFaceTaskId, scheduler);
}
else if (type == 1)
{
// Funs.ScheduledTasks.Remove(InterFaceTaskId);
// Funs.ScheduledTasks.Add(InterFaceTaskId, scheduler);
// Funs.ScheduledTasks.Remove(InterFaceTaskId);
// Funs.ScheduledTasks.Add(InterFaceTaskId, scheduler);
}
else if (type == 2)
{
// Funs.ScheduledTasks.Remove(InterFaceTaskId);
// Funs.ScheduledTasks.Remove(InterFaceTaskId);
}
}
public static IJobDetail GetJobDetailByInterFaceTaskId(string InterFaceTaskId)
@@ -143,8 +137,9 @@ using System.Threading.Tasks;
public static ReadOnlyCollection<ITrigger> GetTriggerByTime(string InterFaceTaskId, string time)
{
string cron = "0 0 0/& * * ? ";
cron = cron.Replace("&", time);
// cron = "0 0/1 * * * ? ";
// cron = cron.Replace("&", time);
cron = time;
// cron = "0 0/1 * * * ? ";
//创建触发器
var trigger1 = new ReadOnlyCollection<ITrigger>(
new List<ITrigger>()
@@ -160,6 +155,5 @@ using System.Threading.Tasks;
}
}
}
}