2017-07-06 8 views
2

私は、タイムスタンプの付いたドキュメントをEvent Hubでトリガーされた関数を使って書いているAzure DocumentDBコレクションを持っています。 私が(my_timestamp)と書いたタイムスタンプは、イベントを処理する関数からのもので、正確であることを確認しました。Azure DocumentDB(CosmosDB?)Timstampの問題

私が遭遇している問題は、DocumentDB自体によって作成された_tsメタデータタイムスタンプが、私が作成しているタイムスタンプの前に数秒の値を表示していることです。つまり、実際にタイムスタンプドキュメントを作成する関数の実行の開始..?

これは、根本的なDocumentDBの仕組みには奇妙なことがあるようですが、これは非常に問題になります。

とにかく、誰かがこの不一致に遭遇しているかどうかを見たいと思っていました。ここでは、彼らは私の文書に表示されるタイムスタンプです:

"my_timestamp": 1499301915, // here's my timestamp that originates from the Azure Function 
"_ts":   1499301899 // and here's the timestamp created by DocDB? 

そしてAzureの機能にmy_timestampを導出するために使用されるコード:

var timeStamp = + Math.floor(new Date().getTime()/1000); 
+0

また、関数コードを共有して、 'my_timestamp'の計算方法を知ることができますか? –

答えて

1

私の知る限り、_tsフィールドが表すUNIXスタイルのエポックタイムスタンプです日付と時刻は文書が変更されるたびに更新されます。

とにかく、誰かがこの不一致に遭遇しているかどうかを見たいと思っていました。

あなたの説明によると、この問題を確認したところ、同じ問題が何度か起きました。しかし、私は今日、この問題を確認したときに、私はこの問題を再現することができませんでした、ここではテストのために私のコードは次のとおりです。

Javascriptを

var doc={ 
    timestamp:Math.floor(new Date().getTime()/1000) 
    }; 

context.bindings.outputDocument = doc; 

setTimeout(function() { 
    context.res={ 
     status:200, 
     body:JSON.stringify(doc) 
    }; 
    context.done(); 
}, 10*1000); 

クエリ結果クエリエクスプローラ経由紺碧のポータルから:

enter image description here

また、私は新しい文書を追加するために、Azure関数C#templateとDocumentDBクライアントSDKでチェックしました。あなたの側でこの問題が解決しない場合は、フィードバックhereを追加することができます。

+0

@ Bruce Chenの情報をありがとう、_tsフィールドについての私の理解を確認します。私はまだこの問題を経験しています。あなたのコメント「私はこの問題をチェックしましたが、同じ問題が何度か起きました。なぜこの問題が起こるのか感覚がありますか?ご提案のとおりにフィードバックをお送りしますが、これはDocDB/CosmosDBの潜在的な深刻なバグのようです... –

関連する問題