2009-12-09 7 views
5

IIS에서 호스팅되는 WCF 서비스에서 정기적으로 수행 할 작업이 있습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 타이머를 만드는 것은 좋은 해결책으로 보이지 않습니다. 어떤 종류의 심장 박동으로 작동하는 Windows 서비스를 만드는 것은 문제의 해결책처럼 보이지만 여전히 냄새는 아닙니다. 어떤 접근 방법이이 문제에 대한 좋은 해결책이 될 것입니까?IIS에서 호스팅되는 WCF 서비스 내의 주기적 작업

+0

조금 명확히하기 위해. 이것은 유지 관리 작업이 아니라 종료 할 구독이 있는지, 보내는 전자 메일과 그런 종류의 것들이 있는지 확인하기 위해 시간당 한 번 실행해야하는 작업입니다. –

답변

2

당신의 행동이 무엇을 하느냐에 달려 있습니다. 데이터베이스 관련 정리 작업 인 경우 (예 : 고아 쇼핑 카트를 삭제하면 SQL Server의 매우 안정적인 작업 엔진과 같이 선택한 데이터베이스에서이 작업을 예약 할 수 있습니다. 정기적 인 정리/파일 삭제 등의 OS 기반 동작 인 경우 Windows 서비스가 훌륭한 후보가됩니다. IIS/WCF 서비스는 대개 외부 응답을 처리하기 위해 더 많이 설계 되었기 때문에 사용하는 것이 잘못 될 것이라고 생각하지 않습니다 작업의 OS 또는 DB의 서비스 계층.

0

필자는 주어진 시간에 전자 메일을 보내도록 예약하고 싶을 때 PHP와 같은 작업을 수행했습니다. 몇 달 동안 땜질을하면서 (주로 들어올 수없는 페이지에 대한 호출을 처리하기 위해 주로), 나는 결국 코드의 본질적으로 상태가없는 비트가 그것을 할 수있는 장소가 아니라는 결론에 도달했고 각각을 해고 할 크론 작업을 계획했다. 밤.

외부에서 트리거 된 작업 (SQL, Windows 서비스 등)의 경로를 빠져 나와 작업을 처리하는 것이 좋습니다. 제가 아는 바와 같이 고통은 고통을 회피할만한 가치가 없습니다.

0

나는 많은 노력을 기울여 왔고 어떤 경우에는 정리가 필요한 곳에서 비동기 (백그라운드) 작업 만 수행하여 기간 정리를 수행합니다 (예 : On GetCommonList).(), 나는 lastrun에 대한 설정/appsetting을 확인한 다음 하루에 한 번 또는 매 5 분마다 등을 찰 수 있습니다. 그런 식으로 앱이 친환경적 목초지로 이동하면 (그럴 수도 있음) 어딘가에 남아있는 느린 작업에 대해 걱정하십시오. 모든 경우에 작동하지 않지만 보안 등도 자동으로 처리됩니다. 반면 서비스 등은 여전히 ​​문제가있을 수 있습니다. 그냥 내 2c.

관련 문제