gpt4 book ai didi

python-3.x - Snowflake Authentication Token expired (390114) - 是否有 Snowflake-SQLAlchemy 的心跳代码?

转载 作者:行者123 更新时间:2023-12-05 07:17:40 32 4
gpt4 key购买 nike

我使用 SQLAlchemy 开发了一个连接到 Snowflake DB 作为后端的 Flask 应用程序。如果网站闲置超过 4 小时,我会遇到 Snowflake 身份验证 token 过期问题。我在 Google 中查看并找到了答案

https://github.com/snowflakedb/gosnowflake/issues/160

但它似乎对 Snowflake-SQLAlchemy 无效。

我使用 APScheduler 实现了心跳代码,它每 50 分钟触发一次“选择 1”,但如果 session 在浏览器 (SSO) 中处于事件状态,它会抛出“身份验证 token 已过期”错误。

from sqlalchemy import create_engine
engine = create_engine('snowflake://<connection-string>' )
connection = engine.connect()
names = connection.execute_query("select names from employees")

def sensor():
""" Function for scheduling purposes. """
v = cursor.execute("""select 1""")
v = v.fetchall()
print(v)

sched = BackgroundScheduler(daemon=True)
sched.add_job(sensor,'interval',minutes=50)
sched.start()

最佳答案

我知道这个问题已经问了好几年了。这是我对 SO 的第一个回答——所以可能是一个练习的好地方:)

我怀疑这里有两件不同的事情在起作用 - 第一件是 session 的保持事件,其他人已经回答了这一问题。

第二个(这似乎是您的问题)是您的 JWT 的生存时间 - 这与您的 session 是分开的。

无论如何 - JWT token 的生命周期最多为一小时。因此,您需要实现 token 刷新策略。

JWT 的生存时间记录在此处(页面中间 - 在注释中) https://docs.snowflake.com/en/developer-guide/sql-api/authenticating.html

关于python-3.x - Snowflake Authentication Token expired (390114) - 是否有 Snowflake-SQLAlchemy 的心跳代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58699000/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com