Cosmos DB:Gremlin API请求太大异常。如何重试通话

时间:2019-10-23 09:33:15

标签: azure azure-cosmosdb gremlin gremlin-server azure-cosmosdb-gremlinapi

我的Azure Cosmos数据库中的吞吐量为1000 RU / s,并且有大约290个查询要执行。我总是收到请求太大的异常。

每个查询都具有12个属性和1个分区键,但我仍然认为以1000 RU / s的速度应该正确执行查询。

我有一个gremlinClient

    public static GremlinClient GetGremlinClient()
    {
        var gremlinServer = new GremlinServer(Endpoint, Port, enableSsl: true,
            username: "/dbs/" + Databasename + "/colls/" + Collectionname, password: Authkey);
        var gremlinClient = new GremlinClient(gremlinServer, new GraphSON2Reader(), new GraphSON2Writer(),
            GremlinClient.GraphSON2MimeType);
        return gremlinClient;
    }

一个示例查询。我只是想添加顶点

  

g.addV('Experience')。property('_ test','dummy')。property('someProperty','dummy')。property('someProperty','dummy')。property('someProperty' ,'业务流程文档   所有部门以及管理层的了解情况   为中型工业企业选择ERP系统;   角色:项目管理').property('someProperty',   '2016')。property('someProperty','Offen')。property('someProperty',   'Dummy')。property('someProperty','EN')。property('someProperty',   'Industry')。property('someProperty','过程文档   整个公司对ERP系统的深刻选择。')

for-each执行所有查询

  foreach (string query in queries)
  {
            await gremlinClient.SubmitAsync<dynamic>(query);
  }

我得到的错误

  

服务器错误:\ r \ n \ nActivityId:2312f64f-b865-49cc-bb26-843d46313199 \ nExceptionType:RequestRateTooLargeException \ nExceptionMessage:\ r \ n \ tMessage:{\“ Errors \”:[\“请求率很大\“]} \ r \ n \ tActivityId:157daf87-3238-4e1c-9a81-41bcd6d7c2e1,请求URI:/ apps / 413f848b-ce17-40fc-ad7f-14c0e21e9633 / services / 29abd22a-4e74-48c1-aab3-b311be968829 / part / 9e4cb405-4f74-4d7f-8d12-26e79b910143 / replicas / 132142016542682221s /,RequestStats:\ r \ n \ tRequestStartTime:2019-10-24T09:27:38.2395067Z,RequestEndTime:2019-10-24T09:27:38.2395067Z,Number尝试的区域数:1 \ r \ n \ t响应时间:2019-10-24T09:27:38.2395067Z

这是一个简单的代码,我不明白该怎么做。

是否可以重试同一点的请求,或者以某种方式无法获得错误或避免错误

1 个答案:

答案 0 :(得分:0)

您收到的异常是Request*Rate*TooLargeException,这意味着您在短时间内提交了太多请求。

要运行批量操作,您应该使用vendor specific tooling