gpt4 book ai didi

python - 请求之间的 Django 持久 API 连接

转载 作者:行者123 更新时间:2023-11-28 16:42:10 25 4
gpt4 key购买 nike

所以我有很多内部和外部 API,基本上每个请求都会调用这些 API。这意味着需要大量设置与这些 API 的连接。有没有一种方法可以创建可以在请求之间共享的持久连接对象?

所以我想替换:

def a(request):
c = api.connect()
c.call_function()

与:

def b(request):
// use existing connection object from earlier request
c.call_function()

有什么想法吗?

我也不确定 yield 会有多大,但我不介意在有了第一个解决方案后进行一些基准测试。

最佳答案

真的很简单

conn = api.connect() # This line is run only once when the process starts and the module is loaded 

def view(request):
conn.call_function() # This line is run every time a request is received

此连接将由使用相同工作人员/服务器进程的任何请求共享。因此,如果您有三个工作人员为您的应用程序提供服务,那么您最多会有三个连接。

我担心连接可能会开始超时。所以你会想要防止这种情况。也许通过一个检查连接状态的函数,如果它仍然有效则返回它,或者如果它已经过期则创建一个新的。

为什么这行得通可以用下面的例子来说明:

>>> a = 1
>>> def add(b):
... print a + b
...
>>> add(2)
3

请注意,如果不使用 global 关键字,则无法修改连接

>>> def change(c):
... a = c
... print a
...
>>> change(4)
4
>>> print a
1

比较:

>>> a = 1
>>> def change(d):
... global a
... a = d
... print a
...
>>> change(5)
5
>>> print a
5
>>>

如果你想在不同的工作进程/进程之间共享 api 连接,那就有点棘手了。即不要打扰。

关于python - 请求之间的 Django 持久 API 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18013333/

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