Get the App
SLTechnology News&Howtos  ›  Internet Technology  › 

How to implement Asynchronous tasks with Flask

Shulou Source: shulou.com Published: 2022-06-02 07:10:13 10月05日 Update

This article introduces the knowledge of "how to achieve asynchronous tasks in Flask". In the operation of actual cases, many people will encounter such a dilemma, so let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!

It is well known that Flask does not perform asynchronous tasks well by default, so how do we quickly return to state in a request and asynchronously perform more complex and time-consuming tasks?

If you don't say much, you'll see what happens.

The ThreadPoolExecutor class is used

Initialize the thread pool (here 10 threads are initialized)

From flask import Flask

From concurrent.futures import ThreadPoolExecutor

Executor = ThreadPoolExecutor (10)

App = Flask (_ _ name__)

Then it will encapsulate a task function, call the task function in the routing function and put it into the thread pool.

@ app.route ('/ api/gen', methods= ['POST'])

Def gen ():

Data_list = request.get_json () .get ('data')

Print (data_list)

Executor.submit (gen_task, (data_list)) # data_list is an argument to the gen_task function

Return {}

Def gen_task (data_list):

Time.sleep (3)

Print ('start gen task...')

For item in data_list:

Gen_records (item ['code'], item [' num'])

Print ('finish.')

This method makes very small changes to the original code, but it is very effective.

This is the end of "how to implement asynchronous tasks in Flask". Thank you for reading. If you want to know more about the industry, you can follow the website, the editor will output more high-quality practical articles for you!

Tags: Tasks functions threads content more knowledge complex practical effective well known learned next code parameters dilemmas facts situations articles methods cases Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Xiaomi NVidia MariaDB vpn Docker