Azure cosmosdb Cosmos DB ExecuteStoreProcedureAsync未返回响应
我正在尝试在我的文档数据库(Cosmos DB)中调用JavaScript SP,虽然我的预期记录在文档数据库中得到更新,但我没有得到调用者的响应 控件不会返回给调用方,也没有异常Azure cosmosdb Cosmos DB ExecuteStoreProcedureAsync未返回响应,azure-cosmosdb,Azure Cosmosdb,我正在尝试在我的文档数据库(Cosmos DB)中调用JavaScript SP,虽然我的预期记录在文档数据库中得到更新,但我没有得到调用者的响应 控件不会返回给调用方,也没有异常 var response=wait client.ExecuteStoredProcedureAsync(sp.SelfLink,new RequestOptions { PartitionKey=新的PartitionKey(PartitionKey), AccessCondition=新的AccessCondit
var response=wait client.ExecuteStoredProcedureAsync(sp.SelfLink,new RequestOptions
{
PartitionKey=新的PartitionKey(PartitionKey),
AccessCondition=新的AccessCondition()
{
类型=AccessConditionType.IfMatch
}
},参数);
尝试以下操作
private List<Dictionary<string, object>> _items { get; } = new List<Dictionary<string, object>>();
private readonly DocumentClient _client;
private readonly Uri _sprocLink;
public CosmosDBStreamPersisterBatch(DocumentClient client, Uri sprocLink)
{
_client = client;
_sprocLink = sprocLink;
}
public async Task<StoredLatency> Commit()
{
var partitionKey = _items.First()[nameof(StreamEntityBase.PartitionKey)];
var response = await _client.ExecuteStoredProcedureAsync<string>(_sprocLink,
new RequestOptions { PartitionKey = new Microsoft.Azure.Documents.PartitionKey(partitionKey) },
new { docs = _items });
return new StoredLatency() { NumItems = _items.Count, Time = StreamEntityPersisterPartition.GetStoredLatency(_items) };
}
public void AddItem(Dictionary<string, object> item)
{
_items.Add(item);
}
private List_items{get;}=new List();
私有只读文档客户端_客户端;
私有只读Uri_存储链接;
公共CosmosDBStreamPersisterBatch(DocumentClient客户端,Uri存储链接)
{
_客户=客户;
_存储链接=存储链接;
}
公共异步任务提交()
{
var partitionKey=_items.First()[nameof(StreamEntityBase.partitionKey)];
var response=wait_client.ExecuteStoredProcedureAsync(_sprocLink,
new RequestOptions{PartitionKey=new Microsoft.Azure.Documents.PartitionKey(PartitionKey)},
新的{docs=_items});
返回新的StoredLatency(){NumItems=_items.Count,Time=StreamEntityTypersisterPartition.GetStoredLatency(_items)};
}
公共无效附加项(字典项)
{
_项目。添加(项目);
}
请参考我的工作代码:
private static readonly string endpointUrl = "https://***.documents.azure.com:443/";
private static readonly string authorizationKey = "***";
private static readonly string databaseId = "db";
private static readonly string collectionId = "part";
private static DocumentClient client;
public static void QueryTestAsync()
{
client = new DocumentClient(new Uri(endpointUrl), authorizationKey);
var uri = UriFactory.CreateDocumentCollectionUri(databaseId, collectionId);
var requestOptions = new RequestOptions { PartitionKey = new PartitionKey("white") };
StoredProcedureResponse<string> sprocResponse = client.ExecuteStoredProcedureAsync<string>("dbs/db/colls/part/sprocs/1/", requestOptions).Result;
Console.WriteLine("Execute Output: {0}", sprocResponse.Response);
}
private static readonly string endpointUrl=“https://***.documents.azure.com:443/”;
私有静态只读字符串authorizationKey=“***”;
专用静态只读字符串databaseId=“db”;
私有静态只读字符串collectionId=“part”;
私有静态文档客户端;
公共静态void QueryTestAsync()
{
client=newdocumentclient(新Uri(endpointUrl),authorizationKey);
var uri=UriFactory.CreateDocumentCollectionUri(数据库ID,collectionId);
var requestOptions=newrequestoptions{PartitionKey=new PartitionKey(“白色”)};
StoredProcedureResponse sprocResponse=client.ExecuteStoreProcedureAsync(“dbs/db/colls/part/sprocs/1/”,requestOptions)。结果;
WriteLine(“执行输出:{0}”,sprocResponse.Response);
}
您好,现在有什么进展吗?