2009-09-22 2 views
10

우리 팀은 Windows 서비스 또는 예약 된 작업에 대해 더 나은 토론을하고 있습니다. 우리는 작업 실행 전용 서버를 가지고 있으며 현재는 모두 예약 된 작업입니다. 일부 작업은 파일을 가져 와서 이름을 바꾸고 네트워크의 다른 디렉토리에 배치합니다. 다른 작업은 SQL에서 데이터를 추출하고 수정 한 후 다른 곳으로 보냅니다. 다른 작업은 ftp 파일을 출력합니다. 다양성은 다양하지만 모두 모두 매우 간단합니다.예약 된 작업 또는 Windows 서비스

예약 된 작업보다 Windows 서비스를 훨씬 쉽게 모니터링 할 수 있기 때문에 이러한 각각의 작업을 예약 된 작업 대신 Windows 서비스로 실행하는 것이 중요합니다. 일부는 정반대로 반대합니다. 결국 우리 중 누구도 두 가지 방법 사이에서 실제 사실을 비교할 수있는 많은 경험을 갖고 있지 않습니다. 나는 다른 사람들이 경험 한 것에 대한 피드백을 찾고있다.

답변

6

지속적으로 실행되는 경우 - Windows 서비스.

예약 된 작업 - 다양한 간격으로 실행해야하는 경우.

4

빌드 기능이있는 작업을 Sceduling하는 것은 완전히 유효합니다. 좋은 서비스를 만들려면 전체 기능을 다시 만들어야하고 특정 이벤트에 반응하고 싶지 않으면 야간 작업을 서비스로 옮길 이유가 없습니다.

파일을 폴더에 게시 한 후 파일을 처리하려고 할 때 다른 점은 파일을 감시하기 위해 파일 시스템 감시자를 사용하는 서비스를 만드는 것입니다.

나는, 그것은, 자체 서비스 작업 스케줄러를 사용하여 아무 문제가 없지만 그 바퀴

2

를 개혁하고 생각합니다. 그러나 우리는 내가 일하는 곳과 동일한 요구 사항을 가지고 있으며 우리는 이러한 일들 중 몇 가지를하는 범용 프로그램을 가지고 있습니다. 귀하의 게시물을 통해 각 업무에 대한 개별 서비스를 실행하겠다고 말하면서 모든 업무를 수행 할 수있는 단일 데이터베이스 구동 (서비스) 프로그램을 작성하는 것이 좋을 것입니다. 그런 식으로 새 작업을 추가하면 간단하게 데이터 입력 작업, 그리고 완전히 새로운 프로그램을 작성하는 것은 아닙니다. 변경 관리를 연습하면이 차이가 상당 할 수 있습니다. 몇 가지 작업 이상을 수행한다면 노력이 치열합니다. 이 방법을 사용하면 작업에 가장 적합한 로깅 메커니즘을 만들 수 있습니다.

  1. 이 프로그램은 데이터베이스를 구동 할 필요가 :

    당신이 시작하는 위치의 아이디어를주고, 우리의 작업 프로그램에 대한 우리의 requirments에 문서의 일부입니다.

  2. Windows 서비스로 실행해야합니다.

  3. 잡스가 존재 또는하지를 기반으로 조치를 소스 파일의 존재 여부를 확인하고 수행 할 수 있어야합니다 :

  4. 이 프로그램은 다음과 같은 방식으로 "작업"을 처리 할 수 ​​있어야합니다 소스 파일의. (즉, 처리를 계속 진행하면 파일이 존재하지 않는다고보고하고 파일을 무시한다는 사실을 알지 못하기 때문에 무시합니다.

  5. 잡스는 준비 위치로, 대상 위치 또는

  6. 복사 소스 파일에 소스 파일을 복사 "처리"를 수행 한 다음 원본 파일 중 하나를 복사 할 수 있어야합니다 또는 대상 위치로 "처리"한 결과 또는

  7. 소스에서 준비 위치로 파일을 복사하고 처리를 수행하면 최종 결과가됩니다.

  8. 소식통과 작업 할 수 있습니다 및 복사 할 수 목적지 서로 다른 : UNC, SFTP, FTP 등

  9. 은 "처리"할 수있다, 암호화/데이터를 분석, 파일을 해독 올바른 형식의 파일, 터미널 에뮬레이션을 통해 메인 프레임에 파일 보내기 등. 일반적으로 .exe에 매개 변수를 전달하는 명령 줄을 호출하여 구현됩니다.

  10. 작업은 필요에 따라 자체적으로 정리할 수 있어야합니다. 즉, 중간 또는 원본 파일을 삭제하고, 아카이브 위치로 파일을 복사하십시오.

  11. 프로그램은 작업의 각 단계의 성공과 실패를 결정하고 로깅이 될 수있는 적절한 조치를 취할 수 있어야합니다. 다른 알림, 실패시 추가 처리 중단 등

  12. 작업은 특정 설정 시간 또는 특정 간격 (선택적으로 특정 시간대)에 활성화되도록 구성해야합니다 (예 : 9:00 - 5 : 00.

  13. 새 작업을 추가하려면 UI가 있어야합니다.

  14. 타이머 이벤트가 활성화 된 것처럼 작업을 실행하려면 버튼이 필요합니다.

  15. 프로그램의 표준 디스플레이는 작업자에게 무슨 일이 일어나고 프로그램이 제대로 작동하는지 보여 주어야합니다.

이 모든 것은 사용자가 직접 소프트웨어를 작성한다는 전제하에 작성되었습니다. 또한 시장에서 사용할 수있는 여러 가지 엔터프라이즈 작업 스케줄러 프로그램이 있습니다. 선반에서 물건을 사면 더 좋은 해결책이 될 수 있습니다.

+0

감사를 사용) 빨리 도착하는대로 메일을 처리합니다. 좋은 아이디어 많이. – user177213

+0

SQL Server Integration Services는 사용자가 언급 한 요구 사항에 적합 할 수 있으며 기본 제공되지 않은 작업에 대한 일부 사용자 지정 ScriptTasks가있을 수 있습니다. 이미 언급 한 바와 같이 .exe가 이러한 작업을 위해 구현 된 경우 SSIS 프레임 워크 내에서 사용할 수 있습니다. 주문형 또는 일정에 따라 SQL Server 작업을 사용하여 배포를 관리 할 수 ​​있습니다. –

+0

물론, 이미 SQL Server를 사용하고 있다는 가정을 전제로합니다. 다른 공급 업체에서 어떤 대안을 사용할 수 있는지 알지 못합니다. –

5

예약 된 작업 -

  1. 일부 고정/미리 정의 된 일정으로 작업을 수행해야하는 경우.
  2. OS의 메모리와 리소스가 적습니다.
  3. 설치가 필요하지 않습니다. 계속 모니터링이 필요한 경우
    1. - (. 예를 들어 불량자로 알림 메일 보내기)

    Windows 서비스을 UI를 가질 수 있습니다.
  4. 더 많은 것을 소비함으로써 OS를 사용하게 만듭니다.
  5. 버전을 변경하는 동안 설치/제거가 필요합니다.
  6. 전혀 UI가 없습니다 (예 :

그들에게 모든 제안을 현명하게