2010-08-20 9 views
0

사용자가 되풀이 작업을 생성 할 수있는 시나리오가 있습니다. 되풀이 작업은 매주 월요일에 진행되는 인보이스 1 일에 정기적으로 보고서를이 고객에게 보내주는 것과 같이 모든 유형이 가능합니다. 이러한 모든 작업은 응용 프로그램마다 다르며 (사용자마다 다를 수 있음) 다른 사용자에게도 표시 될 수 있습니다. 이러한 필요를 충족시키기 위해 Outlook에서 각 작업에 대한 약속을 작성합니다. 그러면 다음 약속 실행 날짜를 찾을 수 있습니다. 우리는 서버에서 실행되는 서비스를 가지며 모든 약속은 서버에 설치된 Outlook 클라이언트에서 생성됩니다. 이제이 구현에 대해 몇 가지 의문이 생깁니다.되풀이 약속 시스템 - 설계 지침

1) Outlook 클라이언트가 멀티 스레딩을 지원합니까? 스레드 풀의 여러 스레드가 클라이언트에 액세스 할 수 있습니까?

2) Outlook 클라이언트를 사용하는 유일한 이유는 다음 실행 날짜를 찾는 것입니다. 우리는이 문제를 자체적으로 해결할 것을 고려했지만 해결해야할 많은 최종 사례가있었습니다. 우리의 필요성을 해결할 타사 도구 또는 구성 요소가 있습니까? 우리의 서버 구성 요소는 C#으로 작성되었습니다.

답변

0

Outlook이 다중 스레드 시나리오를 지원하지 않는다고 생각합니다.

iCalendar은 일정 정보를 생성, 유지 및 전송하기위한 표준 사양 (RFC 2445)입니다. 많은 캘린더 응용 프로그램이이 표준을 사용하여 다른 클라이언트 (Outlook의 구현 포함)간에 가져 오기 및 내보내기 작업을 수행합니다.

Douglas Day가 만든 오픈 소스 .NET 구현 인 available here을 사용하여 내 응용 프로그램에서 반복 이벤트를 관리합니다. 기능의 아주 작은 부분 집합 만 필요 하겠지만 모든 작업은 복잡한 재발 패턴의 전체 영역을 다루는 측면에서 이루어졌으며 다음 발생은 사소한 것입니다. 이벤트 데이터는 완벽하게 직렬화 가능하므로 플랫 파일이나 관계형 데이터베이스에 유지할 수 있으므로 이벤트를 Outlook이나 다른 응용 프로그램으로 가져올 수 있다는 이점이 있습니다.

가장 어려운 부분은 개체 모델을 익히는 것입니다. 그러나 짧은 스파이크가 있으면 곧 꺼져서 실행될 것이며 서버에있는 이상한 Office interop 중 하나를 수행 할 필요가 없습니다.

과거에 사용했던 옵션 중 하나입니다. 의심 할 여지없이 다른 방법도 있지만, 어쨌든 비동기 액세스를 사용하여 서버에서 Outlook의 실행중인 인스턴스에 응용 프로그램 이벤트를 유지하지 않아도됩니다.

+0

덕분에 제이가 있습니다. 나는 그것을 평가할 것이다. – Hunter

0

내가 지금까지 찾은 최고의 솔루션은 Cron 식을 사용하는 것입니다. 닷넷 프레임 워크에 대한 두 가지 구성 요소