python-3.x - Snowflake Authentication Token expired (390114) - Snowflake-SQLAlchemy 是否有心跳代码?
问题描述
我开发了一个使用 SQLAlchemy 连接到 Snowflake DB 作为后端的 Flask 应用程序。如果网站闲置超过 4 小时,我会遇到 Snowflake 身份验证令牌过期问题。我在谷歌中查看并找到了答案
https://github.com/snowflakedb/gosnowflake/issues/160
但它似乎对 Snowflake-SQLAlchemy 无效。
我使用 APScheduler 实现了心跳代码,它每 50 分钟触发一次“选择 1”,但如果会话在浏览器 (SSO) 中处于活动状态,则会引发“身份验证令牌已过期”错误。
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()
解决方案
https://docs.snowflake.net/manuals/sql-reference/parameters.html#client-session-keep-alive
尝试 Client Session Keep Alive 以保持会话处于活动状态。
推荐阅读
- r - 如何在 R 中为国家地图中的特定区域着色?
- r - 重塑数据框以在一行中包含列标题及其各自的值
- flutter - 无法在 Flutter 中滚动 ListView
- blogdown - blogdown:new_site() 和 New Project > website using blogdown 都出错
- java - 为什么我的应用程序在某些设备上崩溃?
- angular - Spring Boot JWT Cors 不适用于 Angular 8
- python-click - 以编程方式生成 Click-Python 选项
- mysql - 如何创建数据库设计以保存具有特定任务的特定设备的记录?
- regex - Vim:在数字和左括号之间添加 * 符号
- c++ - STD::Tuple 实现 C++