我正在创建一个flask应用程序,对于一个请求,我需要运行一些长时间运行的作业,而无需在UI上等待,等待将会造成http请求超时。我将创建一个线程并将消息发送到URI。该线程将计算并更新数据库。但是,URI在提交后会看到一条消息。
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(2)
@work_flow.route('/get22', methods=['GET','POST'])
def get22():
executor.submit(some_long_task1)
executor.submit(some_long_task2, 'hello', 123)
return 'Two jobs was launched in background!'
def some_long_task1():
print("Task #1 started!")
time.sleep(40)
print("Task #1 is done!")
return "some_long_task1"
def some_long_task2(arg1, arg2):
print("Task #2 started with args: %s %s!" % (arg1, arg2))
time.sleep(35)
print("Task #2 is done!")
# some long running processing here
return "some_long_task2"
相关文章:异步执行