如何使用python的REST API解决在Rally中批量创建的并发冲突

时间:2018-09-21 23:37:40

标签: python concurrency rally pyral wsapi

我正在尝试使用Rally从python中使用WSAPI在不使用pyral的情况下使用WSAPI创建> 100个项目作为AllowedAttributeValue。输入来自输入文件。代码-

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 个答案:

答案 0 :(得分:0)

我对python工具包不是很熟悉,但是通常这通常发生在当您在应用服务器之间跳来跳去并且发出请求的速度比发生缓存同步时要快的时候。 WSAPI写入最终将在整个系统上保持一致,并在处理请求的应用服务器节点上立即保持一致。由于所有创建的对象都在修改相同的对象(它们都引用相同的AttributeDefinition),因此可以获得ConcurrencyConflictExceptions。

python工具箱中是否有启用cookie的方法?这通常可行,因为负载平衡器应将您固定到特定节点。它也应该更快,因为它也不必对每个请求进行auth往返。