2017-07-08 2 views
2

コレクションが存在しない場合は作成しようとしています。CreateDocumentCollectionIfNotExistsAsyncが正常に動作しない

まず、私はで私のDocumentClientを作成します。

public DocumentClient CreateClient(ConnectionPolicy connectionPolicy = null) 
{ 
    return new DocumentClient(new Uri(this.AccountEndpoint), this.AccountKey, connectionPolicy); 
} 

今、私は私の文書クライアント(のはdocumentDbClientそれを呼びましょう)を持っていることを、私はCreateDocumentCollectionIfNotExistsAsyncを使用しようとする:今すぐ

var documentDbClient = dbConnection.CreateClient(); 

await documentDbClient.CreateDocumentCollectionIfNotExistsAsync(UriFactory.CreateDatabaseUri("mydatabase"), 
      new DocumentCollection { Id = "testcollection" }); 

、Iだろうこれがmydatabaseという名前のデータベースの下にtestcollectionという名前のコレクションを作成すると思います。しかし、何も起こらない。コレクションは作成されず、例外もスローされません。

私はそれだけで遅かったかもしれないと思った、と私は30分を待っていたし、私のコレクションが行われていたかどうかを確認するために戻ってポータルに行ってきました...

それはありませんでした。

どうしたのですか?

UPDATE

わかりましたので、私は私が作成しようとしていますコレクションの名前を変更した場合、それが動作することを発見しました。以前はコレクションを何度も作成して削除していましたが、Azureがその時間の90%を作成していないようです。

+1

単体テスト状況のように、同じ文書を何度も作成して削除していますか?毎分または何時間に何回ですか? –

+0

@DavidMakogonはい、それは私がやっていることです。 – pookie

+0

@DavidMakogon 1時間に何回も正確になります。 – pookie

答えて

1

これで、コレクションを繰り返し作成したり破棄したりするときに、抑制状況に陥る可能性があります。ここで(文書コレクションにも同様に適用される)FAQの表APIセクションからの抜粋です:テーブルの作成の

急速率が検出され、絞られます。我々は テーブルの作成率を見て、 を1分あたり5未満に下げることをお勧めします。

現在のスロットルレートは5作成/分です。したがって、ユニットテストのシナリオでは、これを回避する必要があります(たとえば、コレクションを保持し、各テスト実行後にコンテンツを空にするなど)。

注:私は、製品のチームに、スロットルの表記がTable APIセクションのみであることを通知し、それに応じてFAQを更新しました。

+0

ありがとうございます。しかし、私はコレクションを5回作成しようとは考えていませんでした。それは10分ごとに1回のようでした。おそらく、絞り込みはコレクションにとってより厳しいでしょうか?加えて、私は1日後に試してみましたが、私が使っていたコレクション名はもう機能しません。私はポータルで作成できますが、コードでは作成できません。何が起こっているのか分かりません! – pookie

関連する問題