2017-12-27 10 views
1

Ich versuche, eine Dokumentation zu finden, die Einschränkungen beschreibt, auf die innerhalb einer Transaktion, die in einem Javascript-Foxx-Mikroservice ausgeführt wird, sicher zugegriffen werden kann. Ich habe irgendwo gelesen (es kann jetzt nicht gefunden werden), dass Sie nur auf das zugreifen können, was über das Transaktionsparameterarray übergeben wird, und Sie müssen alle Knotenmodule, die in der Transaktion verwendet werden, erneut importieren. Ich bin gespannt, was ich sicher in eine Transaktion überführen kann - wie zum Beispiel das ArangoDB-Datenbankobjekt (anstatt es neu zu importieren), warum diese Einschränkungen bestehen und welche Auswirkungen die Performance hat (Objekt-Marshalling?). In meinen Tests auf einem Einzelknotenserver scheint es, dass der Zugriff auf extern definierte Variablen funktioniert. Daher nehme ich an, dass diese Einschränkungen mit komplexeren Konfigurationen des Datenbankservers/-clusters zu tun haben.ArangoDB: Transaktionsbeschränkungen innerhalb Foxx-Service

Danke!

Antwort

0

Ich hatte irgendwo gelesen (kann es jetzt nicht finden), dass Sie nichts außer zugreifen können, was über die Transaktion übergeben Parameter Array

Dies zu UDF gilt (benutzerdefinierte Funktionen) nicht Foxx Micro-Services.

Ich glaube, dass alle Warnungen über Foxx sind im Handbuch:

https://docs.arangodb.com/3.3/Manual/Foxx/

Insbesondere:

  • „Sie nicht auf serverseitigen Zustand (anders als die verlassen sollte Datenbank) zwischen verschiedenen Anfragen, da es nicht möglich ist, sicherzustellen, dass aufeinanderfolgende Anfragen im selben Kontext behandelt werden. "

  • "Da der JavaScript-Code in der Datenbank ausgeführt wird ... sind alle Foxx- und ArangoDB-APIs rein synchron und sollten als blockierend betrachtet werden."