我正在用 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”函数完成。有人可以帮忙吗?
尝试通过多线程解决这个问题。 这是一个简单的例子,希望对您有所帮助。
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())
无需 Asyncio 即可完成! Connexion 3.0 发布,内置 AsyncApp! 更多信息请参见:https://connexion.readthedocs.io/en/latest/index.html