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);
}
}