2009-05-25 3 views
1

우리 프로젝트에서 우리는 정확히 3 분 후에 타사 서비스 공급자로부터 SMS 메시지를받은 후 데이터베이스를 업데이트하기 위해 SQL 쿼리를 실행해야한다는 요구 사항이 있습니다.특정 지점 iof 후 SQL 쿼리 실행 시간

어떻게하면 좋을까요?

**이 저장 프로 시저를 사용 가능하다는 ... 우리는 중재자 서비스 응용 프로그램이 웹 서비스를 가지고 고려가있는

가 정확히 시나리오가된다. 내 응용 프로그램에서 SMS 서비스 공급자에게 SMS를 통해 웹 서비스 응용 프로그램에 보낼 때이 시스템은 포함 된 장치로 푸시됩니다. 그러면 시스템이 켜지 게됩니다. 그리고 2 분 후에 장치가 SMS 서비스 제공자를 통해 SMS 서비스 제공자에게 SMS 메시지를 보냄으로써 점검이 진행되고 있다고 말할 것입니다.이 메시지를 정확히받은 후에는 chekcing이 성공적으로 완료되었다는 데이터베이스를 업데이트해야합니다. 왜이 장치가 꺼지면 정확히 3 분이 지났을까요?

안부, 마헤

+0

SMS 메시지 수신 위치는 어디입니까? –

+0

3 분이 정확히되어야하고 응용 프로그램 클라이언트 또는 서버의 관점이어야합니까? 예를 들어 네트워크 대기 시간을 고려해야합니까? –

+0

정확히 시나리오는 우리가 중개자 서비스 응용 프로그램에 웹 서비스가 있다고 생각하는 것입니다. 내 응용 프로그램에서 SMS 서비스 공급자에게 SMS를 통해 웹 서비스 응용 프로그램에 보낼 때이 시스템은 포함 된 장치로 푸시됩니다. 그러면 시스템이 켜지 게됩니다. 그리고 2 분 후에 장치가 SMS 서비스 제공자를 통해 SMS 서비스 제공자에게 SMS 메시지를 보내 검사가 진행 중임을 말합니다 ... 이 메시지를 정확히받은 후에 Chekcing이 성공적으로 완료되었음을 알리는 데이터베이스를 업데이트해야합니다. 왜이 장치가 꺼지면 3 분이 지난지. – Mayu

답변

5

는 정확히 어떻게 당신이 SMS 메시지를 받고 있습니다. 어떤 서비스가 그들을 선택하고 있습니다.

당신이 할 수있는 몇 가지 방법.

SMSReceived 이벤트의 응용 프로그램 코드에서 180 초 동안 별도의 스레드를 시작한 다음 SQL 코드를 호출 할 수 있습니다.

데이터베이스에서 수행하려는 경우 일종의 폴링 스레드가 필요합니다.

를 기록 "TimeReceived"와

그런 다음 당신은 그냥

SELECT * 
FROM ReceivedSMS 
WHERE TimeRecieved < dateadd(second, -180, getdatE()) AND 
     PostProcessed = 0 

FOREACH Record - Execute SPROC & Update PostProcessed = 1. 
0

저장 프로 시저를 즉시 실행하지만 첫 번째 T-SQL 행은 WAITFOR DELAY '00:03:00'입니까?