Как приостановить запрос POST в Java, если он содержит идентификатор, который уже обрабатываетсяJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как приостановить запрос POST в Java, если он содержит идентификатор, который уже обрабатывается

Сообщение Anonymous »

Итак, мы несем ответственность за создание настроек в стороннем приложении с использованием их базового кода на Java, и нам нужно создать POST API. С помощью POST отправляется сообщение JSON, содержащее данные об объекте продукта, и в этом сообщении JSON у вас есть атрибут «ItemID», который является его уникальным идентификатором. После получения нашего кода используйте это сообщение для создания или обновления указанного объекта на нашей стороне в базовом приложении. В базовое приложение встроена библиотека API, которую мы используем для этого, которая по какой-то причине не допускает более одного параметра для запроса POST (важно для любых возможных решений). Проблема в том, что при тестировании мы заметили, что часто на стороне клиента выполняется POST-запрос с интервалом в несколько миллисекунд для одного и того же объекта, и это заставляет базовое приложение работать с одним и тем же объектом одновременно, вызывая конфликты или создавая один и тот же объект. obejct дважды, потому что второй запрос быстрее проверяет, существует ли объект, чем первый при создании этого объекта в первый раз. Итак, это (частично) код, который мы написали:

Код: Выделить всё

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONObject;

@POST
@Path("ObjectItem")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public JSONObject processObjectItem(String JSON) throws Exception {

JSONObject jData = new JSONObject(JSON);

JSONArray jItems = jData.getJSONArray("Items");
JSONObject productItem = jItems.getJSONObject(0);

Long id = productItem.getLong("ItemID");
Product productBean = new productBean(productItem);

Asset product = getProductById(id);
if (product == null) {
createProduct(id, productItem);
}
else {
updateProduct(id, productItem);
}

JSONObject result = new JSONObject();
result.put("status", "success");
result.put("message", "Items processed successfully");
return result;
}
Кто-нибудь знает, как лучше всего разрешать конфликты, подобные тому, который я описал выше? Способ поместить запрос POST в очередь, если «ItemID» уже обрабатывается?
Мы попробовали метод Async и идентификатор POST, который содержит идентификатор в пути, но в базе приложение не допускает более одного параметра для методов POST. Нам просто нужен код для обработки быстрых запросов, использующих один и тот же идентификатор, и гарантировать, что они обрабатываются в порядке, а не в одно и то же время.

Подробнее здесь: https://stackoverflow.com/questions/760 ... is-already
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как приостановить запрос POST в Java, если он содержит идентификатор, который уже обрабатывается
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Ошибка urllib3.Exceptions.NewConnectionError обрабатывается на одном компьютере, но не обрабатывается на другом
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Как приостановить поток, используя идентификатор потока?
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • WebClientRequestException при Wiremocking Spring Boot Service Post Post Post
    Anonymous » » в форуме JAVA
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • WebClientRequestException при Wiremocking Spring Boot Service Post Post Post
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»