using Microsoft.Extensions.DependencyInjection;
using Quartz;
using SlnMesnac.Config;
using SlnMesnac.Quartz.Job;
using System;

#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* 版权所有 (c) 2024 WenJY 保留所有权利。
* CLR版本:4.0.30319.42000
* 机器名称:LAPTOP-E0N2L34V
* 命名空间:SlnMesnac.Quartz
* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82
*
* 创建者:WenJY
* 电子邮箱:wenjy@mesnac.com
* 创建时间:2024-03-27 21:58:35
* 版本:V1.0.0
* 描述:
*
*--------------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
*
* 版本:V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.Quartz
{
    public static class QuartzSetUp
    {
        [Obsolete]
        public static void AddQuartzSetUp(this IServiceCollection services)
        {
            services.AddQuartz(q =>
            {
                q.UseMicrosoftDependencyInjectionJobFactory();
                //q.ScheduleJob<GetTaskInfo_Job>(trigger =>
                //    trigger.WithCronSchedule("*/5 * * * * ?").WithIdentity("GetTaskInfo_Job", "MyJobGroup") // 示例:每5s执行一次
                //);
                            q.ScheduleJob<GetTaskInfo_Job>(trigger =>
                    trigger.WithCronSchedule("* * 0/2 * * ? *").WithIdentity("GetTaskInfo_Job", "MyJobGroup") // 示例:每5s执行一次
                );
                //q.ScheduleJob<MyJob>(trigger =>
                //    trigger.WithCronSchedule("*/3 * * * * ?").WithIdentity("MyJob", "MyJobGroup") // 示例:每3s执行一次
                //);

                //q.ScheduleJob<Job2>(trigger =>
                //    trigger.WithCronSchedule("*/5 * * * * ?").WithIdentity("Job2", "Job2Group") // 示例:每5s执行一次
                //);
            });

            services.AddQuartzHostedService(options => options.WaitForJobsToComplete = true);

            services.AddSingleton<IScheduler>(provider => provider.GetRequiredService<ISchedulerFactory>().GetScheduler().Result);

        }
    }
}