예제 #1
0
        public IScheduleBuilder CreateAsyncJobService <TJob>(Action <IJobStartBuilder> confifurator)
            where TJob : class, IAsyncJob
        {
            JobManager.AddAsyncJob <TJob>();

            var builder = new JobServiceBuilder();

            confifurator.Invoke(builder);

            var options = builder.Build();

            services.AddSingleton(p => new ScopedAsyncJobService <TJob>(options.DueTime, options.Period, p.GetService <IServiceScopeFactory>()));
            services.AddTransient <TJob>();

            return(this);
        }