src/Framework/Quartz/Quartz.Core/QuartzServer.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using NetModular.Lib.Quartz.Abstractions;
using Quartz;
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using NetModular.Lib.Config.Abstractions;
using Quartz.Impl;
namespace NetModular.Lib.Quartz.Core
{
public class QuartzServer : IQuartzServer
{
private IScheduler _scheduler;
private readonly ILogger _logger;
private readonly IServiceProvider _container;
public QuartzServer(ILogger<QuartzServer> logger, IServiceProvider container)
{
_logger = logger;
_container = container;
}
/// <summary>
/// 启动
/// </summary>
public async Task Start(CancellationToken cancellation = default)
{
var configProvider = _container.GetService<IConfigProvider>();
var config = configProvider.Get<QuartzConfig>();
if (!config.Enabled)
return;
//调度器工厂
var factory = new StdSchedulerFactory(config.ToProps());
//创建一个调度器
try
{
_scheduler = await factory.GetScheduler(cancellation);
}
catch(Exception ex)
{
_logger.LogError("创建一个调度器:{@ex}", ex);
}
//绑定自定义任务工厂
_scheduler.JobFactory = new JobFactory(_container);
//添加任务监听器
AddJobListener();
//添加触发器监听器
AddTriggerListener();
//添加调度服务监听器
AddSchedulerListener();
后面还有 113 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
