python / flask : only one user can call a endpoint at one time

标签 python flask

我有一个使用 Python/Flask 构建的 API,我有一个由系统调用的名为 /build-task 的端点,这个端点需要大约 30 分钟才能运行。

我的问题是,如何在 /build-task 端点启动并运行时锁定它?所以其他用户或系统不能调用此端点。

最佳答案

最好的方法是将数据保存到数据库中,并在运行端点函数之前对其进行检查。

这里还有另一种使用 Flask 的“应用程序”来存储时间的快捷方式:

from flask import Flask, session
from datetime import datetime, timedelta

app = Flask(__name__)

app.secret_key = 'Wow a Secret!'


@app.route('/build-task')
def build_task():
    print ()
    if datetime.now() - app.task_start_time > timedelta(seconds=10):
        app.task_start_time = datetime.now()
        return "I am running a great task now :)"
    else:
        return "Cannot help you!<br>You will have to wait until we reach 10 seconds: " + str(datetime.now() - app.task_start_time)

if __name__ == '__main__':
    app.task_start_time = datetime.now() - timedelta(seconds=10)
    app.run(debug=True)

关于 python / flask : only one user can call a endpoint at one time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49930033/

相关文章:

Python 3 日历

python - 获取查询字符串作为 flask 上的函数参数

jquery - Python Flask 获取json数据显示

python - 在 Heroku 上部署 Flask 应用程序 - web1 :crashed

sql - 用于将查询中的表保存为 csv 的 Flask 按钮

Python,需要帮助使用 mechanize 制作 'brute force'

python - SQLAlchemy:组内不同

python - 如何使用 Button 更改全局变量

python - 使用 Flask 手动定义路由

python - 减去数据框的最佳方法