我一直在使用的命令是:
pserve development.ini --reload
每当我遇到像SQLAlchemy的“IntegrityError”之类的错误时, 我必须再次使用pserve键入命令以重新启动应用程序。
有没有一种方法可以在这样的异常视图中重启应用程序?
@view_config(context=Exception)
def error_view(exc, request):
#restart the waitress or apache...
return Response("Sorry there was an error, wait seconds, we will fix it soon.")
答案 0 :(得分:2)
重新启动服务器不是对IntegrityError
的敏感回应。这是预期会发生的事情,您需要处理它。在开发以外的任何环境中重新启动服务器都没有任何意义。
如果您在开发过程中遇到异常,请修复代码并保存文件,--reload
将自动为您重启服务器。
答案 1 :(得分:0)
如果 在异常后重启应用程序(假设因为在异常之后没有任何工作),则建议您的请求尝试重新使用相同的事务 - 换句话说,您的应用程序是配置不正确。
你应该使用配置了ZopeTransactionExtension的会话作为Pyramide的支架生成。
如果您向我们展示一些代码,我们可以找出问题的确切原因。