2016-06-28 2 views
-2

동일한 서비스 메서드 호출이 동일한 사용자에 대해 을 완료하지 않은 경우 즉시 종료하려는 서비스 메서드를 호출하는 WebAPI 끝점이 있습니다. 세마포어가 될 수있는 것처럼 보이지만 사용자 당 만드는 방법을 모르겠습니다. 나는 (int) 사용자 키를 가질 것이다.사용자 당 한 번에 하나의 메서드 호출 허용

즉, 어떻게하면 세마포어에 컨텍스트를 제공 할 수 있습니까? 이 경우 컨텍스트는 UserKey가됩니다.

+0

아마 당신은 당신이하고있는 것을 설명 할 수있을뿐만 아니라 자신이하고있는 것을 묘사하는 코드를 보여줄 수도 있습니다. – MethodMan

+0

우리는 당신의 코드를보고 당신이하려고하는 것에 대해 (많이) 알 필요가 있습니다. 개념적으로, 당신은 어떤 종류의 데이터 구조 (tote-board)가 필요할 것입니다. 요청이 이미 실행중인 경우 서비스에 대한 새로운 요청을 허용하는 프로세스가 안정적으로 결정될 수 있습니다. 이 특정 UserKey. 그렇다면 적절한 오류 메시지 및/또는 코드와 함께 새 요청을 거부합니다. –

+0

세마포어에 컨텍스트를 제공하는 방법을 알려주는 코드가 필요합니까? – adam0101

답변

1

데이터베이스에 특정 사용자로부터 보류중인 요청이 있음을 나타내는 플래그를 저장하는 것은 어떻습니까?

+0

... 데이터베이스는 ** transaction *을 사용하여 특히이 테이블을 읽거나 업데이트하는 다양한 쿼리를 안정적으로 격리하는 경우 매우 유용한 아이디어입니다. –

관련 문제