2017-07-06 2 views
2

Ich habe eine Azure DocumentDB-Sammlung, die ich zeitgestempelte Dokumente über eine Event-Hub-Funktion ausgelöst habe. Der Zeitstempel, Ich bin Schreiben in das Dokument (my_timestamp) stammt von der Funktion, die das Ereignis verarbeitet, und ich habe bestätigt, dass es korrekt ist.Azure DocumentDB (CosmosDB?) Timstamp-Problem

Das Problem, das mir begegnet, ist, dass der 0.Metadaten-Zeitstempel, der von DocumentDB selbst erstellt wird, einen Wert von einer Anzahl von Sekunden vor dem Zeitstempel zeigt, den ich erstelle, dh es ist tatsächlich ein Zeitstempel, der älter ist als der Beginn der Funktionsausführung, die das Dokument erzeugt ..?

Es scheint, dass dies eine Eigenart in der zugrunde liegenden DocumentDB-Mechanik sein könnte, was sehr beunruhigend wäre.

Wie auch immer, ich wollte sehen, ob jemand anders auf diese Diskrepanz stößt. Hier sind die Zeitstempel, wie sie in meinem Dokument erscheinen:

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

Und der Code verwendet my_timestamp in der Azure-Funktion ableiten:

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

Können Sie auch den Funktionscode teilen, damit wir sehen können, wie 'my_timestamp' berechnet wird? –

Antwort

1

AFAIK, Das _ts Feld ist ein UNIX-Epoche-Zeitstempel darstellt Datum und Uhrzeit, und es wird jedes Mal aktualisiert, wenn ein Dokument geändert wird.

Wie auch immer, ich wollte sehen, ob jemand anders auf diese Diskrepanz stößt.

Gemäß Ihrer Beschreibung habe ich dieses Problem überprüft und habe das gleiche Problem für einige Male festgestellt. Aber wenn ich dieses Problem heute überprüfen, konnte ich dieses Problem nicht reproduzieren, Hier ist mein Code für die Prüfung:

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); 

Abfrageergebnis über Query-Explorer aus azur Portal:

enter image description here

Außerdem habe ich mit azure Funktion C# Vorlage und DocumentDB Client SDK für das Hinzufügen neuer Dokumente überprüft. Wenn dieses Problem auf Ihrer Seite weiterhin besteht, nahm ich an, dass Sie Ihr Feedback here hinzufügen können.

+0

Danke für die Informationen @Bruce Chen, die mein Verständnis der _ts Feld bestätigt. Ich habe immer noch das Problem, und Ihr Kommentar "Ich habe dieses Problem überprüft und ich habe das gleiche Problem für einige Male festgestellt" betrifft mich; Haben Sie ein Gefühl dafür, warum dieses Problem auftritt? Ich werde Feedback einreichen, wie Sie vorschlagen, aber dies scheint ein potentiell schwerwiegender Fehler in DocDB/CosmosDB zu sein ... –

Verwandte Themen