문제
내가 개발하는 웹 사이트를 검색하는 SMS 메시지는 발송되었습니다비스를 제공하는 데 도움이 됩니다.게이트웨이를 통해 액세스한 API,요청에 다음과 같은 형식으로:
http://www.smsgateway.com/?login=myusername&password=mypassword&lasttime=1236164238
통지는 내가 하는 트랙 마지막 메시지를 다운로드-만 받은 메시지 후에는 시간이 반환됩니다.
문제는 시간의 차이에 대해 5 분이면 서버!여기에 무슨 일이:
->사용자에게 SMS;게이트웨이 서버에 타임스탬프 11.00(자의 실제 시간이 10.55 도)
->는 내 서버에 요청을 보내는 모든 메시지에서 10.56 이후-받 위의 메시지가 그를 데이터베이스
->는 내 서버에 요청을 보내는 모든 메시지에서 10.58 이후-받 위의 메시지는 추가 그것을 다시,이후 타임 스탬프가에 11.00
->내 서버로 보내고,다른 요청에 11.00-메시지를 받고 그것을 추가한 데이터베이스는 한 번 더
그래서 내 문제는 하나 원래의 메시지를 받은 3 시간.
변화하는 내 서버의 시간이 할 수 있지만,원격 서버에 있습니다.
할 수 있는 방법이 없는지 확인하는 메시지 데이터베이스에서 이미?
해결책
을 받을 때에 보내는 메시지에서 10.56 이후부터,체크인 마지막 메시지 시간:말 11:00a.m,다음 다음 호출만 보내에서만 11:00a.m 기 때문에 당신이 이미 받은 개까지 11:00a.m 의 서버의 시간입니다.이 방법을 줄일 수 있습니다 설문 조사.도이면 서버의 시간에서 역전 상태입니다.
ie)확인을 위한 마지막 메시지 시간:
다음 설문 조사 확인서 마지막 메시지의 시간입니다.
다른 팁
기본 설치가 정확성,경우에도 당신은 유지하는 두 개의 서버 시계에서 동기화할 것입니다 하나를 잃거나 두 번에 메시지를 공유하는 타임 스탬프(할 수 있는 많은 또는 몇에 따라 타임스탬프도와 메시지 트래픽).
당신은 것 중 하나가 필요 서로 다른 API 에 대한 액세스하는 메시지 또는 당신을 요청하는 겹치는 메시지를 통해 메시지를 요청 이후 latest_processed_timestamp - 1
과 중복을 당시의 쪽에 있습니다.