Пример #1
0
        // 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));
            }
        }