мета-данные страницы
  •  

Это старая версия документа!


Идемпотентность в мобильных приложениях


  1. Добавлены property
    1. Himstat.IdempotencyText устанавливается на прямую (доступно на чтение и запись)
    2. Himstat.IdempotencyHash устанавливается при установке IdempotencyText (доступно только на чтение)
  2. uErrorRes добавлен тип Exception TIdenpotencyException
    • На примере запроса PayPlanOrders:
  3. THimstatDM.ReplyWithPayPlanOrders
    1. Himstat.IdempotencyText := Srvr.Request.Query.Text; Получаем IdempotencyText IdempotencyHash
  4. Himstat.DoPayPlanOrders
    1. QueryIdempotency Записываем в таблицу Hash и время
      1. Нет таблицы IDEMPOTENCY_QUERY - выходим из проверки
      2. получаем старый ОТВЕТ (предыдущего АНАЛОГИЧНОГО запроса) ИЛИ получаем ОТВЕТ="" - Идет запись
        1. ОТВЕТ=null - пытаемся записать HASH
          1. ERROR Присваиваем ОТВЕТ:="" - Идет запись
      3. FINALY
        1. ЕСЛИ ОТВЕТ=null - то у нас уникальный запрос записанный в таблицу
        2. ЕСЛИ ОТВЕТ<>null - возбуждаем исключение TIdenpotencyException.Create(ОТВЕТ);
  1. если ошибка получения "старого" ответа - то ничего не делаем - пропускаем запрос выполнять свои действия - старый функционал - нет таблицы
  2. если ответ ="" - идет запись - Отправляем пустой не ошибочный ответ
  3. если ответ !="" - ответ был - Отправляем ответ клиенту
  4. если ошибка записи в уникальные поля таблицы - Отправляем пустой не ошибочный ответ