Yuebon.NetCore/Yuebon.Quartz.Jobs/QuartzService.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Microsoft.Extensions.Hosting;
using System.Reflection;
namespace Yuebon.Quartz.Jobs;
/// <summary>
/// 定时任务启动
/// </summary>
public class QuartzService : IHostedService, IDisposable
{
private ISchedulerCenter _schedulerCenter;
private ITaskManagerService _iService;
public QuartzService(ISchedulerCenter schedulerCenter, ITaskManagerService iService)
{
_schedulerCenter = schedulerCenter;
_iService = iService;
}
public async Task StartAsync(CancellationToken cancellationToken)
{
Log4NetHelper.Info("开始启动定时任务");
try
{
IEnumerable<TaskManager> list = _iService.GetAllByIsNotDeleteAndEnabledMark();
//_scheduler =await _schedulerFactory.GetScheduler();
foreach (TaskManager job in list)
{
if (job.Status == 0) //停止
{
await _schedulerCenter.StopScheduleJobAsync(job);
//TriggerKey triggerKey = new TriggerKey(job.Id.ToString(), job.GroupName);
//// 停止触发器
//await _scheduler.PauseTrigger(triggerKey);
//// 移除触发器
//await _scheduler.UnscheduleJob(triggerKey);
//// 删除任务
//await _scheduler.DeleteJob(new JobKey(job.Id.ToString()));
}
else //启动
{
Log4NetHelper.Info("启动定时任务" + job.TaskName);
//IJobDetail jobDetail;
//if (job.IsLocal)
//{
// var implementationAssembly = Assembly.Load("Yuebon.Quartz.Jobs");
// var implementationTypes = implementationAssembly.DefinedTypes.Where(t => t.GetInterfaces().Contains(typeof(IJob)));
// var tyeinfo = implementationTypes.Where(x => x.FullName == job.JobCallAddress).FirstOrDefault();
// jobDetail = JobBuilder.Create(tyeinfo).WithIdentity(job.Id.ToString(), job.GroupName).Build();
//}
//else
//{
// jobDetail = JobBuilder.Create<HttpResultfulJob>().WithIdentity(job.Id.ToString(), job.GroupName).Build();
//}
await _schedulerCenter.AddScheduleJobAsync(job);
//jobDetail.JobDataMap["OpenJob"] = job.Id.ToString(); //传递job信息
//ITrigger trigger = TriggerBuilder.Create()
// .WithCronSchedule(job.Cron)
// .WithIdentity(job.Id.ToString(), job.GroupName)
后面还有 26 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。