【问题标题】:Python on heroku gives h12Heroku 上的 Python 提供 h12
【发布时间】:2020-10-26 20:22:57
【问题描述】:

我用 python 感染数据编写了一个 api Nodejs,并对 pdf 文件进行了一些绘图。它只是简单的 api 适用于 pandas 中的 100-200 数据行。

所以它在我的本地机器上运行良好,但是当我将它推送到 heroku(免费层)时,它会出现 h12 超时错误。我怎样才能提高我的 api 速度,有没有办法构建 python 或 npm 来制作生产版本的api。 谢谢。

【问题讨论】:

  • 有没有办法让它更快或获得更多时间然后 30 秒

标签: python heroku npm


【解决方案1】:

这是Heroku 中最难的事情之一。通常,Heroku 会在30s 之后给您超时。但根据您的应用类型,有很多工作要做。

1. Flask 和流式响应

如果您的应用在30s 中没有返回任何内容,Heroku 将给出超时错误。因此,您可以在处理时流式传输您的响应是克服此错误的一种方法。更多详情请查看herehere

2。在后台运行你的长进程

绕过这个超时错误的另一种方法是,您可以将耗时最长的进程发送到后台任务列表中,后台任务没有时间限制。你可以看到here更多的了解它

3.更改gunicorn中的超时时间

如果您使用gunicornFlask,您可以通过参考gunicorn 文档here 的技巧绕过错误。不过,您不能将超时设置为大于30s,但您可以在 30 秒以内终止进程而不会出错,然后您可以重新运行

我认为在您的情况下,流式响应可以完成这项工作。只需在处理完每一行后遍历每一行并流式传输响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2017-01-18
    • 2018-10-10
    相关资源
    最近更新 更多