- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个 Python flask
Web 应用程序,并使用 gunicorn
将其部署在 Azure App 服务
上。 Web 应用使用 flask_sqlalchemy
连接到 PostgreSQL 数据库,该数据库也部署在 Azure Database for PostgreSQL 服务器
上。
在网络应用程序插入包含六个字段的一行的“小”查询后,我有时会收到以下错误:
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback().
Original exception was: (psycopg2.OperationalError) SSL SYSCALL error: EOF detected
[SQL: INSERT INTO <table>]
[parameters: <row's parameters>]
(Background on this error at: http://sqlalche.me/e/e3q8) (Background on this error at: http://sqlalche.me/e/7s2a)
虽然网络应用程序仍在部署,但我重新启动了数据库服务器,发现连接中断导致了错误。如果我随后重新启动应用程序服务,问题就会得到解决。
当我在本地部署 Web 应用程序并断开数据库连接时,我收到了略有不同的错误:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
[SQL: INSERT INTO <table>]
[parameters: <row's parameters>]
(Background on this error at: http://sqlalche.me/e/e3q8)
遵循 SQLAlchemy 的建议,我将数据库连接更改为:
db = SQLAlchemy(engine_options={"pool_pre_ping": True})
这解决了本地部署的 Web 应用程序的问题,但 Azure 部署的 Web 应用程序仍然出现相同的错误消息。
有什么建议吗?
点卡住:
aniso8601==8.0.0
atomicwrites==1.3.0
attrs==19.3.0
certifi==2019.11.28
cffi==1.14.0
chardet==3.0.4
Click==7.0
colorama==0.4.3
cryptography==2.8
Flask==1.1.1
flask-restx==0.1.1
Flask-SQLAlchemy==2.4.1
idna==2.8
importlib-metadata==1.5.0
itsdangerous==1.1.0
Jinja2==2.11.1
jsonschema==3.2.0
jwt==0.6.1
MarkupSafe==1.1.1
more-itertools==8.2.0
numpy==1.18.1
packaging==20.1
pandas==1.0.1
pluggy==0.13.1
psycopg2==2.8.4
py==1.8.1
pycparser==2.19
PyJWT==1.7.1
pyparsing==2.4.6
pyrsistent==0.15.7
pytest==5.3.5
python-dateutil==2.8.1
pytz==2019.3
requests==2.22.0
scipy==1.4.1
six==1.14.0
SQLAlchemy==1.3.13
urllib3==1.25.8
wcwidth==0.1.8
Werkzeug==0.16.1
wincertstore==0.2
zipp==3.0.0
最佳答案
我们通过增加与数据库的防御性连接来修复此问题;将所有连接放入 try/catch 中,如果引发 psycopg2 异常,则定期刷新并重试。
attempts = 0
while attempts <= 5:
attempts = attempts + 1
logger.info("Attempt " + str(attempts))
try:
db.session.add(job_status)
db.session.commit()
return
except (SQLAlchemyError, OperationalError) as e:
if attempts < 5:
logger.warning("Attempt failed. Trying rollback")
db.session.rollback()
time.sleep(5)
else:
logger.error("Maximum number of retries reached. Raising an error")
raise e
<小时/>
答案取自update到question通过 AmyChodorowski 。
关于python - psycopg2.OperationalError 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60614632/
我有一个 Pandas 数据框,如下所示。 activity User_Id \ 0 VIEWED MOVIE 158d292ec18a49 1 VIEWED
我正在尝试在运行 12.04 的 Ubuntu 机器上使用 mysql 创建一个远程数据库。 它有一个启用了远程登录的根用户。我已经启动了服务器。 输出 sudo netstat -tap | gre
这个问题在这里已经有了答案: sqlalchemy.exc.OperationalError: (OperationalError) unable to open database file Non
我正在尝试使用 SQLAlchemy(使用 Flask)创建模型,但我无法在互联网上的任何地方找到解决我的问题的方法。 它给我的错误是 sqlalchemy.exc.OperationalError:
我收到以下错误: sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: s_amodel [SQL: '
我搜索了很多这个错误,但我只找到了一些背后有更多信息的信息,比如“FATAL: ...”。我的没有。它只是说 sqlalchemy.exc.OperationalError: (psycopg2.Op
我在使用 flask_alchemy 进行单元测试时遇到问题 生产环境我用的是postgresql数据库 "SQLALCHEMY_DATABASE_URI": "postgresql://login:
运行.py文件: from flaskblog import app, db if __name__ == '__main__': db.create_all() app.run(de
我已在本地成功运行我的 Flask 应用程序,但是当我将其部署到我的产品环境时,出现此错误: [2019-08-26 00:15:36,229] ERROR in app: Exception on
服务 我的服务基于flask + postgresql + gunicorn + supervisor + nginx docker部署的时候,运行服务后,再访问api,有时候会报错,有时候还可以。
我定义了表名 users_table 并运行 db.create_all() 来创建表,但是在提交更新用户信息时出现错误“no such table user_table”。 我如何测试: (unde
我目前正在第一次编写一些 Airflow DAG 完整性测试。我遇到了一个错误,我的一些运算符(operator)/任务引用了 Airflow 变量,例如: test_var= Variable.ge
我正在尝试通过 flask 中的 sqlalchemy 执行原始 sql 查询。在 psql 中运行时,原始 sql 查询会给出正确的输出。 postgres=# SELECT distin
import requests import time import csv import ast import sys import mysql.connector config = { 'user
我用了很长时间的Postgres 14和PGAdmin4 6.7,一切都很好。这是在Windows11上。昨天我试着升级到Postgres 15和PGAdmin4 7.6,但这就是它失败的地方!。Po
错误: sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication fai
我正在使用 Python、Flask 和 SQLAlchemy。我在构建应用程序时一直使用本地数据库,并且它在以下代码中运行良好: from flask import Flask from flask
我正在尝试使用 mysql 来运行 python-flask Web 应用程序。但是,我在主应用程序文件中连接到数据库,每次尝试将数据输入数据库(即注册客户)时,我都会收到错误消息: Tracebac
我想从当前数据库切换到另一个 MySQL 数据库(从后台)。所以,我想这与我设置数据库设置的方式有关。 engine = create_engine('mysql+mysqldb://user:pw@
我在 Google AppEngine 上使用带有 Flask 的应用程序,我使用此常量 SQLALCHEMY_DATABASE_URI = 'mysql://user:pass@ip_address
我是一名优秀的程序员,十分优秀!