2016-08-25 295 views
0

对于大多数请求/路由,15或30s的标准harakiri值可以。uWSGI:覆盖烧瓶/ python中的默认harakiri持续时间

但有几个端点长时间运行(例如生成报告时),我希望客户端在准备并返回时同步等待。

我可以在uwsgi.ini中设置默认的harakiri值,然后在代码中使用flask/python覆盖它,或者在烧瓶中使用装饰器?

以前的答案显示了如何使用uWSGI config/routes完成此操作,但我宁愿将这些特殊情况与标准uWSGI超时配置分开。 uWSGI - Different Harakiri Timeout for Django Admin

任何指针?

回答

0

那么,如果你写的项目可以用不同的方式写,那么你可以做生成过程。这是许多选项之一:

创建一个链接,将启动后端进程。用户页面刷新后,将会有正在生成的字词。然后你有两个选择,首先告诉最终用户:我们会在完成时通知你,并发送给他一些甚至是电子邮件通知,或者最简单的一个,你什么都不做,但只检查特定进程是否正在运行在您计算机的后台并根据回答“是/否”显示指向文件的链接或留下一条消息,表明他仍然必须等待,因为进程尚未结束。

在我描述的情况下,每个长生成将从HTTP层分离。如果您可以预测何时会超时,您甚至可以将其与您的方法混合使用。

希望我解释得够。

+0

感谢@ turkus,这可能是我需要采取的方法,如果我不能动态覆盖默认超时值。 – python1981