2016-06-23 3 views
3

저는 C#을 사용하고 있습니다.
그게 멍청한 질문이라고 생각하지만 어쨌든 시도하고 있습니다.
메서드가있는 C# 프로젝트가 있습니다 : X(),Y(),Z().
나는 다른 시간에 내 방법 (X(), Y(), Z()를 매일/매시간 실행하는 작업 스케줄러를 찾고 있습니다.
어떻게 할 수 있습니까?방법/작업 스케줄러 C#

+2

예약 Windows 작업 스케줄러의 작업? –

+0

프레임 워크가 필요한 경우 Quartz.net의 Windows Task Scheduler를 확인하십시오. –

답변

4

각 기능을 호출하는 단일 매개 변수 (think myapp.exe x)를 허용하는 콘솔 응용 프로그램을 만드십시오. 그런 다음 Windows Scheduler에 여러 예약 된 작업을 추가하면 모든 설정이 완료됩니다.

3

가장 쉬운 방법은 기존 라이브러리를 사용하는 것입니다. Scott Hanselman은 잠시 후 블로그를 가지고있었습니다. http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx.

참고 :이 기사에서는 asp.net을 언급하지만 스케줄러는 콘솔이나 Windows 응용 프로그램을 통해 실행할 수도 있습니다.

개인적으로 .net 코어를 지원하도록 업데이트 된 Fluent 스케줄러 (https://github.com/fluentscheduler/FluentScheduler)를 사용합니다. 사용하기 쉽고 간단한 일정 요구 사항이있는 경우 권장할만한 것일 수도 있습니다.

+0

OP가 웹 응용 프로그램을 지정하지 않았습니다. 간단한 예약 작업은 충분하고 더 많은 기능 (예 : 트리거)을 제공합니다. Fluent Scheduler 또는 Quartz.NET은 Windows 서비스에 적합합니다. –

+0

웹 응용 프로그램에 대해서는 아무 말도하지 않았습니다. 실제로 지속적으로 실행되는 콘솔 앱을 통해 Fluent 스케줄러를 사용합니다. 다른 사람이 윈도우 작업 일정을 사용하는 것에 대해 말한 것은 괜찮습니다. 프로그램 자체에 일정을 쓰는 것은 오류 처리 및 작업 간의 종속성과 관련하여 더 많은 것을 할 수 있음을 의미합니다. 그러나이 모든 것은 OP의 요구 사항에 과도 할 수 있습니다. –

+0

Hanselman의 기사는 웹 응용 프로그램에 관한 것입니다. –

2

매 시간, 매일 또는 다른 명확하게 알려진 기간을 실행하려면 콘솔 응용 프로그램을 만들고 Windows 작업 스케줄러를 사용하여이 응용 프로그램을 실행하는 것이 가장 좋습니다.

이 기간이 불분명하고 일부 논리 또는 계산에 따라 다르면 가장 좋은 옵션은 필요할 때마다 실행되는 Windows 서비스를 항상 실행하는 것입니다.

1

나는 윈도우 서비스를 만들 것이고, 윈도우 서비스에서는 타이머 체크를 통해 메소드를 호출 할 수있다.

1

응용 프로그램이 항상 실행되는 경우, 반응 확장을 시도 할 수있다 (우리는 우리의 된 회사에서 그것을 그렇게했다) :

Observable.Timer(TimeSpan.FromSeconds(5)).Subscribe(x=>X()); 

확인 여기에 대한 추가 정보를 원하시면 간단히 작성하지 왜 https://msdn.microsoft.com/en-us/library/hh242977(v=vs.103).aspx