Python - 从函数返回而不等待函数完成

问题描述 投票:0回答:2

我正在用 Python 构建一个 REST API。我正在使用 Connexion Flask。当用户调用提供输入参数的端点时,我需要从端点将 JobId 返回给用户。但是,在后台,我希望运行一个异步函数来处理某些功能。

我研究了 Asyncio,但我看到的所有示例都允许我同时运行,但该函数仍然需要在返回 JobId 值之前完成。

示例代码:

def inputJob(String inputValue) -> Response
  response = {}  
  response ['job_id'] = str(uuid.uuid4())
  response ['inputValue'] = inputValue
  response ['creation_time'] = fnow 
  run_in_background(inputValue)
  return response

在这种情况下,我想将响应对象返回到端点,而不等待“run_in_background”函数完成。有人可以帮忙吗?

python asynchronous jobs
2个回答
0
投票

尝试通过多线程解决这个问题。 这是一个简单的例子,希望对您有所帮助。

import threading
def waitForASec():
    count = 0
    while(count < 100000000):
        count +=1

    print("hello world")

def main_process():
      t1 = threading.Thread(target=waitForASec, name='t1')
      t1.start()
      return "cool"

print(main_process())

0
投票

无需 Asyncio 即可完成! Connexion 3.0 发布,内置 AsyncApp! 更多信息请参见:https://connexion.readthedocs.io/en/latest/index.html

© www.soinside.com 2019 - 2024. All rights reserved.