Windows 서비스 또는 Windows 작업 스케줄러?


10

데이터베이스를 쿼리하고 정보를 데이터베이스의 다른 테이블에 저장하는 유틸리티를 만들 계획입니다. 멀티 스레드 유틸리티이며 매일 5 분 또는 10 분마다 실행해야하며 하루에 3 번 정도 필요할 수 있습니다.

C # / DotNet 프로그래밍에서 이것을 달성하는 두 가지 옵션이 있습니다.

  • 내부에 타이머 접근 방식을 가진 Windows 서비스를 만듭니다.
  • 콘솔 프로그램과 Windows 작업 스케줄러를 사용하여 예약하십시오.

어느 것을 선호하고 왜?


3
나는이 질문이 SO에 더 적합하다고 생각한다
Naveen

1
실제로, 이것은 좋은 소프트웨어 디자인 질문이며, SO에 요청하면 5 시간 안에 최소한 5 개의 답변이있을 것입니다.
sharptooth

1
나는 폐쇄하기로 투표했다. 이것은 실제로 SO에 속한다
Jaco Pretorius

2
이 질문은 그 중 하나의 장점에 대한 주관적 및 / 또는 확장 된 토론을 이끌어냅니다. 여기에 주제가 있고 주관적이고 논쟁이 많은 주제입니다.

2
잘 모르겠습니다. 마지막 문장은 "어느 쪽을 선호합니까?"라고 생각합니다. 클로즈 봇을 작동시킵니다. 실제 답변을 얻을 수 있으므로 여기에 더 좋습니다
TheLQ

답변:


2

이 주제와 관련하여 어제 동료 직원의 의견

"항상 이것에 대해 다양한 의견이있을 것입니다 ... 5 분마다 달리는 것이 필요하고 (달리는 시간이나 달리는 시간을 신경 쓰지 않는 경우) 저의 경험의 규칙은 매일 특정 시간에 무언가를 실행해야하고 오버랩이 발생하지 않을 것이라고 확신하는 경우 OS와 함께 제공된 스케줄러를 사용하십시오. 하이브리드가 필요한 경우 둘 다 사용하십시오. 다양한 경우에 대한 솔루션 또는 선반에서 무언가를 찾으십시오. (아마도 Quartz .Net) "

2005 년 Jon Galloway의 기사 "// TODONT : 예약 된 프로세스를 실행하기 위해 Windows 서비스 사용"을 잘 읽어보십시오. 토론은 오늘날까지도 계속되고 좋은 반론도 제공하기 때문에 의견도 읽어 보시기 바랍니다.

개인적으로 나는 이것에 대해 동료와 동의합니다. 가능한 한 간단하게 유지하십시오. 또한 Win2008 서버에 배포하는 경우 작업 스케줄러와 표준 스케줄러가 제공하는 모든 기능을 확인하십시오. 나를 위해, 킬러는 이벤트가 발생할 때 예약 된 작업을 시작하는 것이 었습니다.


4

서비스 는 관리 목적으로 사용되거나 여러 응용 프로그램에 서비스를 제공하는 데 사용됩니다.

일정 은 추가 권한이 필요하지 않은 작업을 여러 번 실행하는 데 사용됩니다.


3

Windows 스케줄러 사용에 대한 주장을 들었지만 항상 앱으로 서비스를 작성하기로 선택했습니다. 처음에는 클러스터 환경에서 더 나은 솔루션이라고 생각했지만 실제로는 그렇지 않습니다. 결론은 더 나은 디자인과 같은 "펠트 (felt)"가 아닌 다른 좋은 이유가 없다는 것입니다.


0

Quartz.net
을 한 번 사용해 보지 않더라도 스케줄러를 만들 수있는 강력한 프레임 워크라고 말할 수 있으며 예약 된 작업 (데이터베이스 또는 XML 파일에 저장된)을 실행하는 사전 빌드 서비스를 제공합니다. ) http://quartznet.sourceforge.net/


2
-1 이것은 질문에 전혀 대답하지 않으며 주석으로 더 잘 맞습니다.
Tamara Wijsman

0

사용자가 빌드하지 않고도 더 많은 제어 권한을 갖도록하려면 작업 스케줄러를 사용하십시오. Google이 앱을 업데이트하면서이 작업을 수행하는 것 같습니다. 사용자에 따라 작업을 관리하는 것이 어렵지 않습니다. 사용자를 루프에서 빠져 나와 서비스를 만듭니다. 대부분의 사람들은 절대 만지지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.