Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Scheduler.Start();
- public class Scheduler
- {
- private readonly static Lazy<Scheduler> _instance = new Lazy<Scheduler>(() => new Scheduler());
- private static IScheduler scheduler;
- public static Scheduler Instance
- {
- get
- {
- return _instance.Value;
- }
- }
- public static async void Start()
- {
- scheduler = await StdSchedulerFactory.GetDefaultScheduler();
- await scheduler.Start();
- InicializarMonitoreo();
- }
- private static void InicializarMonitoreo()
- {
- EnviarCorreos();
- }
- public static void EnviarCorreos()
- {
- IJobDetail job = JobBuilder.Create<JobCorreoAdministradores>().WithIdentity("myJob", "myGroup").Build();
- ITrigger trigger = TriggerBuilder.Create()
- .WithSchedule(CronScheduleBuilder.CronSchedule("0 0/1 * 1/1 * ? *"))
- .Build();
- Scheduler.AddJob(job, trigger);
- }
- public static void AddJob(IJobDetail job, ITrigger trigger)
- {
- scheduler.ScheduleJob(job, trigger);
- }
- }
- public class JobCorreoAdministradores: IJob
- {
- public Task Execute(IJobExecutionContext context)
- {
- List<string> emails = new List<string>();
- emails.Add("correo1@dominio.com");
- emails.Add("correo2@dominio.com");
- string asunto = "correo de prueba";
- string mensaje = "Hola este correo es de prueba para envio programado";
- EmailSender _emailSender = new EmailSender();
- _emailSender.SendMultipleRecipientsEmailAsync(emails, asunto, mensaje);
- return Task.CompletedTask;
- }
- }
- public class CorreoObjetosGeograficosAdministradores : IJob
- {
- public Task Execute(IJobExecutionContext context)
- {
- List<string> emails = new List<string>();
- var usuarios = dbcontext.Tabla.where(usuario => usuario.usuariomodificacion != null).select(usuarios => usuarios.email).ToList();
- foreach (var item in usuarios)
- {
- emails.Add(item);
- }
- string asunto = "correo de prueba";
- string mensaje = "Hola este correo es de prueba para envio programado";
- EmailSender _emailSender = new EmailSender(UrlAplicaciones.CORREO_HOST, UrlAplicaciones.CORREO_PORT, UrlAplicaciones.CORREO_ENABLE_SSL, UrlAplicaciones.CORREO_USER_NAME, UrlAplicaciones.CORREO_PASSWORD);
- _emailSender.SendMultipleRecipientsEmailAsync(emails, asunto, mensaje);
- return Task.CompletedTask;
- }
- }
- public class MyJobFactory : IJobFactory
- {
- private readonly IServiceProvider _serviceProvider;
- public MyJobFactory(IServiceProvider serviceProvider)
- {
- _serviceProvider = serviceProvider;
- }
- public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler)
- {
- return (IJob)this._serviceProvider.GetService(bundle.JobDetail.JobType);
- }
- public void ReturnJob(IJob job)
- {
- var disposable = job as IDisposable;
- disposable?.Dispose();
- }
- }
- public class Scheduler
- {
- private readonly static Lazy<Scheduler> _instance = new Lazy<Scheduler>(() => new Scheduler());
- private static IScheduler scheduler;
- public static Scheduler Instance
- {
- get
- {
- return _instance.Value;
- }
- }
- public static async void Start(IServiceProvider serviceProvider)
- {
- scheduler = await StdSchedulerFactory.GetDefaultScheduler();
- scheduler.JobFactory = new JobFactory(serviceProvider);
- await scheduler.Start();
- InicializarMonitoreo();
- }
- private static void InicializarMonitoreo()
- {
- EnviarCorreos();
- }
- public static void EnviarCorreos()
- {
- IJobDetail job = JobBuilder.Create<JobCorreoAdministradores>().WithIdentity("myJob", "myGroup").Build();
- ITrigger trigger = TriggerBuilder.Create()
- .WithSchedule(CronScheduleBuilder.CronSchedule("0 0/1 * 1/1 * ? *"))
- .Build();
- Scheduler.AddJob(job, trigger);
- }
- public static void AddJob(IJobDetail job, ITrigger trigger)
- {
- scheduler.ScheduleJob(job, trigger);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement