gpt4 book ai didi

python - 如何阻止和等待异步、基于回调的 Python 函数调用

转载 作者:太空狗 更新时间:2023-10-29 21:52:13 27 4
gpt4 key购买 nike

我有一个 Python 脚本发出许多异步请求。我正在使用的 API 需要回调。

主函数调用运行,我希望它阻止执行,直到所有请求都返回。

我可以在 Python 2.7 中使用什么来实现这一点?

def run():
for request in requests:
client.send_request(request, callback)

def callback(error, response):
# handle response
pass

def main():
run()

# I want to block here

最佳答案

我发现最简单、侵入性最小的方法是使用threading.Eventavailable in 2.7 .

import threading
import functools

def run():
events = []
for request in requests:
event = threading.Event()
callback_with_event = functools.partial(callback, event)
client.send_request(request, callback_with_event)
events.append(event)

return events

def callback(event, error, response):
# handle response
event.set()

def wait_for_events(events):
for event in events:
event.wait()

def main():
events = run()
wait_for_events(events)

关于python - 如何阻止和等待异步、基于回调的 Python 函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38499261/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com