Я использую gremlin@3.3.5 для моего приложения Node.js 8.10 с AWS Lambdas.Процесс работает все хорошо для одного вызова.Вот мой пример кода.
const gremlin = require('gremlin');
const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;
const Graph = gremlin.structure.Graph;
exports.handler = (event, context, callback) => {
dc = new DriverRemoteConnection('wss://your-neptune-endpoint:8182/gremlin');
const graph = new Graph();
const g = graph.traversal().withRemote(dc);
try {
const result = await g.V().limit(1).count().next();
dc.close();
callback(null, { result: result });
} catch (exception) {
callback('Error');
throw error;
}
}
Когда я запускаю этот процесс для одиночного вызова, кажется, что он работает нормально, но как только я пытаюсь запустить пакетный процесс операций (что-то вроде 100 000 запросов /hr) в метриках журнала CloudWatch я обнаружил, что мои соединения не закрыты успешно.Я пробовал ряд реализаций этого, таких как callbackWaitForEventLoopEmpty, но это захватывает лямбду.Когда я удаляю обратный вызов (или возвращаю аналогично), этот процесс также отлично работает с пакетными операциями.Но я хочу вернуть данные из этой лямбды с информацией, которая передается в мою функцию шага для запуска другой лямбды на основе этой информации.