Add nuget packages to Web Project.

Install-Package Quartz -Version 2.6.0

Add class in common helper class as Quartz.

using Quartz;
using Quartz.Impl;
using Quartz.Impl.Triggers;
using Serene.Modules.Common.Helpers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using System.Web;
using System.Web.Configuration;

namespace Serene.Modules.Common.Helpers
{
    public class Quertz : IJob
    {
        public void Execute(IJobExecutionContext context)
        {
            if (context.JobDetail.Key.Name.Equals("Job1"))
            {
                Method1();
            }
            if (context.JobDetail.Key.Name.Equals("Job2"))
            {
                Method2();
            }


        }
        public async Task Method1()
        {

        }
        public async Task Method2()
        {
            // await new HomeController().ActionMethod();
        }


        public static bool CheckForInternetConnection()
        {
            try
            {
                using (var client = new WebClient())
                {
                    using (var stream = client.OpenRead("http://www.google.com"))
                    {
                        return true;
                    }
                }
            }
            catch
            {
                return false;
            }
        }
    }
}
public class StartJob
{
    private static IScheduler _scheduler;

    static string DeleteMeterTime = WebConfigurationManager.AppSettings["DeleteMeter"];
    static string InsertMeterTime = WebConfigurationManager.AppSettings["InsertMeter"];
    static string InsertTimeseriesTime = WebConfigurationManager.AppSettings["InsertTimeseries"];
    public StartJob()
    {
        ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
        _scheduler = schedulerFactory.GetScheduler();
        _scheduler.Start();
        Console.WriteLine("Starting Scheduler");
        AddJob();
    }
    public static void AddJob()
    {
        Quertz quertzJob = new Quertz(); //This Constructor needs to be parameterless

        JobDetailImpl jobDetail1 = new JobDetailImpl("Job1", "Group1", quertzJob.GetType());
        // "0 0/5 * * * ?"
        CronTriggerImpl trigger1 = new CronTriggerImpl("Trigger1", "Group1", DeleteMeterTime);
        _scheduler.ScheduleJob(jobDetail1, trigger1);


        JobDetailImpl jobDetail2 = new JobDetailImpl("Job2", "Group1", quertzJob.GetType());
        CronTriggerImpl trigger2 = new CronTriggerImpl("Trigger2", "Group1", InsertMeterTime); //0 0/2 * * * ?
        _scheduler.ScheduleJob(jobDetail2, trigger2);


        DateTimeOffset? nextFireTime = trigger1.GetNextFireTimeUtc();
        Console.WriteLine("Next Fire Time:" + nextFireTime.Value);
    }
}

results matching ""

    No results matching ""