金字塔:在异常视图中重新启动应用程序

时间:2013-07-12 00:50:12

标签: python apache pyramid waitress

我一直在使用的命令是:

 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.")

2 个答案:

答案 0 :(得分:2)

重新启动服务器不是对IntegrityError的敏感回应。这是预期会发生的事情,您需要处理它。在开发以外的任何环境中重新启动服务器都没有任何意义。

如果您在开发过程中遇到异常,请修复代码并保存文件,--reload将自动为您重启服务器。

答案 1 :(得分:0)

如果 在异常后重启应用程序(假设因为在异常之后没有任何工作),则建议您的请求尝试重新使用相同的事务 - 换句话说,您的应用程序是配置不正确。

你应该使用配置了ZopeTransactionExtension的会话作为Pyramide的支架生成。

如果您向我们展示一些代码,我们可以找出问题的确切原因。