티스토리 뷰

======================================================

안녕하세요 Doridori 입니다.

C# 강의 시즌 2를 마무리 하고 시즌 3로 다시 돌아 왔습니다. 

시즌 1이 기본을 다루고 시즌 2가 응용을 다루고 있었다면 시즌 3는 좀더 자유롭게 이것저것 막 해보려고 합니다. 

C#이라고 붙여 놓은 강의 이기는 하지만 유니티를 다룰수도 있고 WPF를 다룰 수도있고 자마린을 다룰 수도 있고 . . .

열어 놓고 이것저것 하려고 합니다. ㅎㅎ 

주제를 막 정해놓고 할 생각이라 이쪽보다는 "도리도리 하고 싶은거 다해" 쪽에 더 많이 올릴것 같기는 한데 C#관련 주제가 되는 것들은 이쪽으로 와야 할것 같아서 기타로 정했습니다. 

항상 그렇듯 일이 우선이고 위치도 남쪽 끝쪽에 내려가 있는 상태라  자주 업로드는 힘들겠지만 생각나는 것들을 짬짬 히 정리해서 계속 업로드 하도록 하겠습니다. 

모두 화이팅 하십시오!!

======================================================

 

58. Quartz Scheduler (쿼츠 스케줄러)

UI)

58. Quartz Scheduler (쿼츠 스케줄러) (UI).zip
0.36MB

Soruce)

58. Quartz Scheduler (쿼츠 스케줄러).zip
5.19MB

교재)

58. Quartz Scheduler (쿼츠 스케줄러).pdf
0.19MB

 

 

"C# 강의 시즌 2"를 종료 하고 "도리도리하고 싶은거 다해 부분"에 Cron Expression 부분에 대해 올렸는데 C#으로 구현 하는 방법을 보다 보니 아주 잘 만들어져 있는 API가 있어서 준비해 보았습니다. 

쿼츠나 크론 관련 부분의 경우 이전 내용을 참조 하면 좋을 듯 합니다. 

2021.09.23 - [C#/도리도리 하고 싶은거 다해] - Doridori 하고싶은거다해) 5. 스케줄링 (크론 : Cron)

 

Doridori 하고싶은거다해) 5. 스케줄링 (크론 : Cron)

====================================================== 안녕하세요 Doridori 입니다. 지난번 C# 강좌를 마무리 하고 국내 출장을 다니고 있습니다. 아무래도 원룸에서 뭘 하기도 쉽지 않고 해서 당분간은 가벼..

cwkcw.tistory.com

해당 내용을 상세하게 구현 하려면 범위가 너무 많아져서(제가 집중해서 볼 시간도 많이 없어서 . . .ㅎㅎ ) 입문 하는 부분과 API 다루는 방법 정도를 보면 잼있지 않을까 생각 합니다. 

상기 site 들에서 내용을 확인 하면 좋을 듯 합니다. 

프로그램의 경우 간단 하게 Thread를 사용하는 느낌으로 만들기는 했는데 Start 할 경우 Scheduler가 동작 하고 Cron 부분에 Cron Expression을 넣어 놓으면 동작 시 설정 한 주기에 따라 Scheduler가 동작 하도록 구현 하였습니다. 

간단한 코드이기는 하지만 외부 API를 사용 한다던가 Cron Expression을 직접 넣어본다던가 전역 로그 사용을 본다던가 하는 느낌으로 보시면 재미있는 내용이지 않을까 싶습니다. 

 

강의)

그렇게 많지 않은 코드로 강의도 긴 느낌은 아닙니다만 외부 API를 사용해야 하기 때문에 사용방법을 익히는데 시간이 걸릴 수 밖에 없습니다. 

(영상에서 제가 바로바로 찾는건 예제를 만든다고 이미 찾아 봤기 때문 입니다. ㅎㅎ)

 

 

 

Source)

소스를 클래스 단위로 쪼개놓은 부분이 많다 보니 (습관이 . . . =0=a) 다 올리기에는 이것 저것 많아서 쿼츠 스케줄러를 사용하는 핵심 부분만 정리해 놓았습니다. 

호출 하는 부분이라던지 Global Log Event, cSample(Main Logic)이 되는 부분의 경우 상단에서 전체 Source를 받아서 확인 해보시면 좋을 듯 합니다. 

cQuartzScheduler.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace QuartzScheduler
{
    class cQuartzScheduler
    {
        StdSchedulerFactory factory;
        IScheduler scheduler;
 
        // sc Start
        public async void fScheduler(string strCron)
        {
            cGlobalLog.LogEvent(enLogLevel.Info, $"Scheduler Start [{strCron}]");
 
            factory = new StdSchedulerFactory();
            scheduler = await factory.GetScheduler();
 
            await scheduler.Start();
 
            IJobDetail job = JobBuilder.Create<cSample>()
                .WithIdentity("job1""group1")
                .Build();
 
            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("trigger1""group1")
                .StartNow()
                .WithCronSchedule(strCron)
                //.WithSimpleSchedule(x => x
                //    .WithIntervalInSeconds(10)
                //    .RepeatForever())
                .Build();
 
            await scheduler.ScheduleJob(job, trigger);
        }
 
        // sc Stop
        public async void scStop()
        {
            cGlobalLog.LogEvent(enLogLevel.Info, $"Scheduler Stop");
 
            await scheduler.Shutdown();
        }
 
    }
}
 
cs

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함