最近在开发同步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()
这样便能快速告诉接口调用者你已经知道需要同步数据,同时在后台进行所需要的操作,不至于因为等待而造成的无谓的阻塞以及超时