Как разрешить конфликт параллелизма для массового создания в Rally с использованием REST API с использованием Python

1

Я пытаюсь создать> 100 элементов как AllowedAttributeValue, используя WSAPI в Rally из python без pyral. Вход осуществляется из входного файла. Код -

for line in inputFile:
    body = {<body>}
    try:
        r = requests.post(url, headers=headers, data=body, proxies=proxy)

Не все 100 строк обновляются. число варьируется от 40-70. Ошибка:

["Concurrency conflict: [Object has been modified since being read for update in this context] - ConcurrencyConflictException : Modified since read on update : Object Class : com.f4tech.slm.domain.WorkspaceConfiguration : ObjectID : <objid>"], "Warnings": []}}

Ищет резолюцию. Ценю твою помощь!

Теги:
concurrency
rally
wsapi
pyral

1 ответ

0

Я не очень хорошо знаком с инструментарием python, но, как правило, это обычно происходит, когда вы прыгаете между серверами приложений, и вы увольняете запросы быстрее, чем может произойти синхронизация кеша. WSAPI-записи, в конечном итоге, совместимы по всей системе, сразу же согласованные на узле сервера приложений, которые обрабатывают запрос. Поскольку все ваши создания изменяют один и тот же объект (все они ссылаются на одно и то же свойство AttributeDefinition), вы можете получить ConcurrencyConflictExceptions.

Есть ли способ в наборе инструментов python для включения файлов cookie? Это обычно работает, поскольку балансировщик нагрузки должен привязать вас к определенному узлу. Это также должно быть быстрее, так как для каждого запроса он не должен будет выполнять аут-тур.

  • 0
    Спасибо @Kyle Морс за предложение. Я еще не пробовал куки-файлы (это в моем списке дел), но временная задержка вместе с блокировкой потока - это обходной путь (я знаю, что это не очень хороший стандарт кодирования). Кажется, длительность записи WSAPI составляет более 0,5 с (я не знаю точное время), и python пытается продвинуться быстрее, чем это. Спасибо за рекомендацию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню