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

Я пытаюсь создать>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": []}}

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

1 ответ

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

Есть ли способ в наборе инструментов Python, чтобы включить куки? Это обычно работает, так как балансировщик нагрузки должен привязать вас к конкретному узлу. Он также должен быть быстрее, так как он не должен будет выполнять проверку подлинности в обоих случаях.

Другие вопросы по тегам