【问题标题】:Flask API - perform operation after request with lower priorityFlask API - 在请求后以较低优先级执行操作
【发布时间】:2020-12-23 08:44:56
【问题描述】:

我的 Python Flask-restful API 公开了一个 GET 端点 /get_value,它需要一些时间来运行,并且此操作在尽可能快的时间内发生至关重要。请注意,一个客户端应用程序可能会依次发生多个请求。

现在,我想在每次调用 /get_value 端点时在数据库中存储一条日志记录,而不影响 API 响应(在数据库上写入是产生 GET 响应时无法承受的开销!)。向数据库中插入记录的优先级较低,甚至可以在调用端点后一天完成...

执行此操作的最佳做​​法是什么? Flask 是否支持这样的功能?

谢谢!

【问题讨论】:

标签: api rest flask flask-restful thread-priority


【解决方案1】:

这是一个复杂的问题,我认为您的问题与Execute a function after Flask returns response 有关。

如果您阅读这篇文章和答案,您会发现针对您的问题的多种解决方案。其中之一是使用装饰器@response.call_on_close - see here for a different example - 这似乎可以做你想做的事情。

如果你想使用多线程,this answer 应该会有所帮助。

装饰器和多线程都具有避免额外依赖的优势。

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多