Я разрабатываю веб-сайт, который будет получать 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 раза.
Изменение времени моего сервера выполнимо, но не удаленных серверов.
Как я могу справиться с этим, не проверяя, находится ли сообщение в базе данных?