有人要求我在此处报告使用节点连接器连接到Snowflake的问题。
问题:https://github.com/snowflakedb/snowflake-connector-nodejs/issues/113
问题是我找不到有关如何重用现有令牌的文档,以避免在连接到Snowflake时花费很长时间。
非常感谢您的帮助。
编辑
这是我使用的代码:
// Tokens are retrieved from a DB
if (tokens) {
connection.masterToken = tokens.masterToken;
connection.masterTokenExpirationTime = tokens.masterTokenExpirationTime;
connection.sessionToken = tokens.sessionToken;
connection.sessionTokenExpirationTime = tokens.sessionTokenExpirationTime;
}
connection.connect(async function (err, conn) {
if (err) {
reject(err);
} else {
resolve();
}
});
答案 0 :(得分:1)
这可能不是一个完整的答案,但希望它能对您或其他人有所帮助。我也遇到过类似的问题。对我们来说,过程是通过Web服务获取JWT令牌。我尚未对此进行测试,但怀疑它是否可以重复使用。JSON响应包含“ lease_duration”属性。我猜这是在几秒钟内,但不知道虽然我尝试检查。为了给您一个想法,我为此获得的价值是2764800。您可以计算出类似的结果:
Long leaseDurationInMs = Long.parseLong(result.get("lease_duration"));
Date estimatedLeaseExpiration = new Date(leaseStartTime+leaseDurationInMs);
System.out.println("Estimated lease expiration timestamp (human readable): "+estimatedLeaseExpiration);
Long estimatedLeaseExpirationInMs = estimatedLeaseExpiration.getTime();
,然后如果每次都将获取此令牌的内容时检查此值,以查看是否需要获取另一个。
答案 1 :(得分:0)
很抱歉回答了我自己的问题,但最终我将数据缓存在自己的一边,以避免连接过多。