- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我的 python 应用程序使用 uwsgi。我是 uwsgi 的新手。当我想在后台运行 uwsgi 时,我这样做:
uwsgi --http 127.0.0.1:1088 --wsgi-file app.py --callable app --master --processes 1 --workers 1 --threads 1 --daemonize=logs.txt
然后过了一段时间,例如10 分钟后,当我尝试在我的实际网站上登录我的测试帐户时,我总是遇到 500 内部错误
。在 logs.txt 文件中我发现了这个异常:
OperationalError("(_mysql_exceptions.OperationalError) (2006, 'MySQL server has gone away')")
或者有时这个
StatementError("(sqlalchemy.exc.InvalidRequestError) Can't reconnect until invalid transaction is rolled back",)
我做了什么:
我发现 --lazy-apps
或 --lazy
应该可以解决问题,但事实并非如此。以下是我如何使用 lazy-apps
uwsgi --http 127.0.0.1:1065 --wsgi-file app.py --callable app --master --lazy-apps --processes 1 --workers 1 --threads 1 --daemonize =logs.txt
然后我尝试像这样将POOL_RECYCLE
设置为小于5m(但仍然出现问题):
app.config['SQLALCHEMY_POOL_RECYCLE'] = 285
我读到我应该使用 NullPool
禁用池化,但老实说我不知道该怎么做。这里link是配置键列表,但没有 SQLALCHEMY_POOLCLASS
下面是我的代码。我该如何解决我的问题?谢谢
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://brrr:brrr@localhost/grrr'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
app.config['SQLALCHEMY_POOL_RECYCLE'] = 285
db = SQLAlchemy(app)
bcrypt = Bcrypt(app)
from models import *
app.secret_key = 'super secret key'
login_manager = LoginManager()
login_manager.init_app(app)
from models import *
login_manager.login_view = "login"
@login_manager.user_loader
def load_user(user_id):
return User.query.filter(User.id == int(user_id)).first()
@app.route('/')
def index():
return render_template('index.html')
@app.route('/success')
def success():
return render_template('success.html')
@app.route('/login', methods=['GET','POST'])
def login():
error = None
if request.method == 'POST':
user = ser.query.filter_by(username=request.form['username']).first()
if user is not None:
user_pass = request.form['password']
if bcrypt.check_password_hash(user.password, user_pass):
login_user(user)
return redirect(url_for('success'))
else:
error = 'error'
else:
error = 'error'
return render_template('login.html', error=error)
@app.route('/signup', methods=['GET','POST'])
def signup():
user_name_error = None
email_error = None
if request.method == 'POST':
user = User(
username=request.form['username'],
password=request.form['password']
)
db.session.add(user)
db.session.commit()
login_user(user)
return redirect(url_for('success'))
return render_template('signup.html')
@app.route('/logout')
def logout():
logout_user()
return redirect(url_for('index'))
if __name__ == '__main__':
app.run()
最佳答案
我在这里做了与 PizzaPleb
相同的事情 link所以我像这样重新初始化我的数据库
db.init_app(app)
我贴在这里
...
from models import *
login_manager.login_view = "login"
**db.init_app(app)**
...
我摆脱了那个异常(exception)。
关于mysql - 启动应用程序一段时间后 uwsgi 出现两个 MySql 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34096571/
uWSGI 主进程有什么用? 和/或我可以在哪里阅读更多相关信息? 我找到了零文档。 最佳答案 您可以找到有关大师的一些信息here和 here 一般来说,主文件负责优雅地重新加载您的应用程序服务器(
我有多个基于 Flask 的 web 应用程序在 docker 容器中运行(它们的进程需要与主机操作系统隔离)。为了运行这些应用程序,我在容器内使用了 uWSGI 服务器。传入的请求应该通过订阅服务器
我正在尝试使用 uwsgi 进行一些非常复杂的配置。从长远来看,我试图让自己的事情变得更容易,自然而然,这样做,我正在使事情变得尽可能困难。 无论如何,我正在寻找魔法变量的完整列表。我能在 Emper
我开始使用 uWSGI,我想知道它的工作人员是否是非阻塞/基于事件的(就像 nginx 一样)。 假设我已经像这样启动了 uWSGI: uwsgi --http :8000 --wsgi-file t
我们的应用程序是为 Python 2.7 编写的。它有一个配置为使用 Python 2.7 的 virtualenv。系统安装的 uWSGI 是用 Python 2.6 构建的。 It seems t
我在这个页面 http://uwsgi-docs.readthedocs.org/en/latest/StatsServer.html并使用 uwsgitop但我不知道如何解释输出。文档也没有透露太多
我看到这里发布了许多 uWSGI 配置,我在工作中遇到的现有应用程序的配置也有填充了 100 到 1000 值的 max-requests。 在一定数量的请求后回收进程的目的是什么?您是否试图避免内存
我正在使用 uWSGI 运行一个 webpy 网络服务器,有些请求花费的时间太长。设置 harakiri 模式后,我注意到请求被终止后会再次重试。 是否可以禁用此行为? 运行命令为: /usr/loc
uwsgi 中的“mule farm”是什么,它有什么用?有一些使用示例吗?我没有在文档或其他任何地方找到任何东西。 最佳答案 一群有名字的骡子 --farm chickens:1,2,3. --fa
在学习Python web开发时候,可能会遇到诸如uwsgi,wsgi等名词,下面通过梳理总结探究它们之间的关系。 CGI CGI,(Common Gateway Interface)通用网关接口,是
我已经使用 uWSGI 部署了一个 WSGI 应用程序,但是 I am not using NGINX .如何使用 uWSGI's internal routing将 http 请求重定向到 http
我正在使用命令在 uWsgi 服务器中测试应用程序, uwsgi --http :9090 --wsgi-file myapp.py --callable app --processes 4 --th
我们有一个工作的 uwsgi 服务器,带有一些 RPC 调用(注意:我们能够使用 uwsgi.rpc 与进程对话,因此它们端的设置很好)。我们发现我们有一些进程没有在 uwsgi 下运行,但我们想要与
我正在尝试为我的 Django 项目设置 uwsgi。它运行良好 ./manage.py runserver 0.0.0.0:9010 但是当我尝试 uwsgi --http :9010 --chd
我是 Linux 开发的新手。我对阅读的文档有点困惑。我的最终目标是托管一个简单的 python 支持的 Web 服务,该服务将检查传入的有效负载,并将其转发到其他服务器。这应该不到 30 行 pyt
我的 Django 应用程序倾向于使用 uwsgi+nginx,谁能分享启动我的 uwsgi 进程的最佳方法?有没有人有调整uwsgi的经验? 最佳答案 在 OSX 上启动 Unice 上的 Upst
从 ini 文件启动 uwsgi 时崩溃,堆栈跟踪如下: Traceback (most recent call last):
我用 Django 编写了一个服务器应用程序,并使用 Tastypie 为移动应用程序提供 API,并使用本地 MySQL 服务器为数据库提供服务。 在进程被杀死或结束之前,查询似乎被缓存了。如果我在
我正在开发一个基于 Python 的应用程序(HTTP -- REST 或 jsonrpc 接口(interface)),它将用于生产自动化测试环境。这将连接到运行所有测试脚本的 Java 客户端。即
我尝试在 nginx+uwsgi、os - debian (3.1.0-1-amd64 x86_64) 上为 django 建立网络服务器 nginx 1.1.8-1,uwsgi 0.9.8.3-1
我是一名优秀的程序员,十分优秀!