gpt4 book ai didi

python - 在 Python/Django 中将多个 POST 请求作为多线程提交

转载 作者:行者123 更新时间:2023-12-01 04:51:10 26 4
gpt4 key购买 nike

我的开发堆栈是Django/Python。 (包括 Django-REST-framework)我目前正在寻找执行多个不同 API 调用的方法。

client.py

def submit_order(list_of_orders):
//submit each element in list_of_orders in thread
for order in list_of_orders:
try:
response=request.POST(order, "www.confidential.url.com")
except:
//retry_again
else:
if !response.status==200:
//retry_again

在上述方法中,我当前正在逐个提交订单,我想一次提交所有订单。其次,如果失败我想重试x次。我目前不知道如何实现它。

我正在寻找 python 库或 Django 应用程序提供的方法,而不是重新发明轮子。

谢谢

最佳答案

正如@Selcuk所说,你可以尝试django-celery我认为这是推荐的方法,但您需要进行一些配置并阅读一些手册。

另一方面,您可以尝试使用 multiprocessing像这样:

from multiprocessing import Pool

def process_order(order):
#Handle each order here doing requests.post and then retrying if neccesary
pass

def submit_order(list_of_orders):
orders_pool = Pool(len(list_of_orders))
results = orders_pool.map(process_order, list_of_orders)
#Do something with the results here

这取决于你需要完成什么,如果你可以在后台执行请求操作并且稍后可以通知你的api用户,只需使用django-celery,然后相应地通知用户,但如果你想要一个立即使用react的简单方法,您可以使用我为您“原型(prototype)化”的方法。

您应该考虑对您的请求的响应存在某种延迟(因为您正在执行某些 POST 请求)。因此,请确保您的 POST 请求不会增长太多,因为这可能会影响 API 客户端调用您的服务的体验。

关于python - 在 Python/Django 中将多个 POST 请求作为多线程提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28444239/

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