flask实现异步任务

flask实现异步任务

最近在开发同步mysql数据到redis的接口,因为数据同步涉及各种增删查改,如果用同步实现,可能回造成连接超时、堵塞,所以,使用python实现异步任务。

代码实现

from flask import Flask
import time
from concurrent.futures import ThreadPoolExecutor

executor = ThreadPoolExecutor(1)

app = Flask(__name__)


@app.route('/synchronize')
def update_redis():
    executor.submit(do_update)
    return 'ok'


def do_update():
    time.sleep(3)
    print('start update')


if __name__ == '__main__':
    app.run()

这样便能快速告诉接口调用者你已经知道需要同步数据,同时在后台进行所需要的操作,不至于因为等待而造成的无谓的阻塞以及超时

你可能感兴趣的:(python)