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

namespace SlnMesnac.Quartz
{
    public static class QuartzSetUp
    {
        [Obsolete]
        public static void AddQuartzSetUp(this IServiceCollection services)
        {
            services.AddQuartz(q =>
            {
                q.UseMicrosoftDependencyInjectionJobFactory();

                q.ScheduleJob<MyJob>(trigger =>
                    trigger.WithCronSchedule("*/3 * * * * ?").WithIdentity("MyJob", "Group") // 示例：每3s执行一次
                );

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

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

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

        }
    }
}
