【问题标题】:how to run longer than 30 second job on heroku with flask如何使用烧瓶在heroku上运行超过30秒的工作
【发布时间】:2021-03-13 08:56:59
【问题描述】:

我使用烧瓶在 Heroku 上创建了一个微型网络,显示一个包含一些统计数据的表格。除非我使用一个按钮来启动更新统计信息的过程,否则它工作正常。这需要 10 多分钟,因为它正在从外部数据库下载数据。

问题是半分钟后网络下降,我收到请求超时错误。这是日志:

2021-03-13T08:30:19.764770+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=POST path="/update" host=vacuumlabs-recruitment-stats.herokuapp.com request_id=13b513e5-a34c-46ec-b224-c0a7d1802394 fwd="78.141.79.60" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
2021-03-13T08:31:50.608234+00:00 app[web.1]: [2021-03-13 08:31:50 +0000] [4] [CRITICAL] WORKER TIMEOUT (pid:10)
2021-03-13T08:31:50.609875+00:00 app[web.1]: [2021-03-13 08:31:50 +0000] [10] [INFO] Worker exiting (pid: 10)
2021-03-13T08:31:51.070396+00:00 app[web.1]: [2021-03-13 08:31:51 +0000] [27] [INFO] Booting worker with pid: 27

有没有办法解决这个问题并让进程以某种方式在后台运行?提前感谢您的任何提示。

【问题讨论】:

    标签: flask heroku


    【解决方案1】:

    当这个特定请求进来时,你确实需要启动一个后台进程。
    该过程是异步的,因此您需要决定是否/如何将响应返回给调用者(如有必要)。

    在此处查看示例https://stackoverflow.com/a/64478590/9095551

    【讨论】:

      猜你喜欢
      • 2016-02-07
      • 2021-11-28
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      相关资源
      最近更新 更多