.NET Windows 서비스의 타이머 간격을 10 초로 설정했습니다. 10 초마다 데이터베이스에서 수행 할 작업을 쿼리하고 상위 3 개의 작업 항목을 선택하여 처리합니다. 각 작업 항목을 처리하는 데 걸리는 시간은 사용자에 따라 다릅니다. 몇 초에서 몇 분 정도 걸릴 수 있습니다.최적의 타이머 간격은 무엇입니까? .NET Windows 서비스
10 초가 너무 짧습니다. 사용자가 프로세스가 완료 될 때까지 기다리는 동안 (프로세스가 프런트 엔드에서 진행률 표시 줄을 볼 때) 낮은 간격을 선택했으며 서비스가 작업을 빨리 수행할수록 더 좋습니다. 또한 작업 항목 수 (3 개)가 무작위로 선택되었습니다.
하나의 스레드가 다른 스레드로 넘어 가지 않도록 내 코드에 "잠금 (this)"이 있습니다. 프로덕션 환경에서 10 초의 짧은 시간이 괜찮습니까?
EDIT : 또한 처리 할 때마다 매 3 개의 항목 만 선택한다는 의미입니다.
타이머가 10 초마다 실행되지만 어떤 이유로 요청을 처리하는 데 30 초가 걸리는 경우 어떻게됩니까? –
쿼리와 통신 단계를 완료하는 데 걸리는 시간 (데이터베이스가 서비스에 로컬 인 경우 쿼리 만)과 해당 프로세스가 리소스를 많이 차지하는 정도에 따라 전적으로 다릅니다. – Jay
나는 DB를 쿼리하는 것이 유일한 일은 아니며 몇 분이 걸릴 수도있는 프로세스를 시작한다는 것을 잊어 버렸다. – Nick