// https://sites.google.com/site/netcorenote/scheduler-in-netcore/quartz/02--tutorial-of-quartz-in-netcore/01-simpleexamplewithquartznet300-alpha2 public async Task TaskFJJob(string indexNo, string address, string nx, string ny, string crawlTerm, string crawlStatus) { ISchedulerFactory schedulerFactory = new StdSchedulerFactory(); schedulerForFJ = schedulerFactory.GetScheduler().Result; schedulerForFJ.Start().Wait(); int crawlTermMin = 0; switch (crawlTerm) { case "1H": crawlTermMin = 60; break; case "30M": crawlTermMin = 30; break; case "1M": crawlTermMin = 1; break; default: break; } int ScheduleIntervalInMinute = crawlTermMin; IJobDetail job = JobBuilder.Create <Job>().WithIdentity(indexNo) .UsingJobData("address", address) .UsingJobData("nx", nx) .UsingJobData("ny", ny) .Build(); ITrigger trigger = TriggerBuilder.Create() .WithIdentity("JobTrigger" + indexNo) .StartNow() // .WithSimpleSchedule(x => x.WithIntervalInSeconds(ScheduleIntervalInMinute).RepeatForever()) // https://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontriggers.html // http://devfun.tistory.com/1 // .WithCronSchedule("0/30 * 9-20 * * ?") .WithCronSchedule("0 0/30 9-20 * * ?") .Build(); await schedulerForFJ.ScheduleJob(job, trigger); if ("S" == crawlStatus) { await schedulerForFJ.PauseJob(new JobKey(indexNo)); } Console.WriteLine("TaskFJJob - job:{0}, trigger:{1}", job.ToString(), trigger.ToString()); // 로그 L4Logger l4Logger = new L4Logger(indexNo + ".log"); l4Logger.Add("TaskFJJob - job:" + job.ToString() + ", trigger:" + trigger.ToString()); l4Logger.Close(); }
public async Task <IActionResult> GetAsync(string name) { JobKey key = new JobKey(name, "group1"); bool isExist = await scheduler.CheckExists(key); if (isExist) { IJobDetail job = await scheduler.GetJobDetail(key); //return Ok(job.Description+job.Key.ToString()); return(Ok(job.ToString())); } else { return(NotFound("Job does not exist with given key:" + name)); } }