gpt4 book ai didi

python - 将 Async/Await 与 Pickle 结合使用

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:32 26 4
gpt4 key购买 nike

我是 async/await 的新手,我遇到了一些困惑。 pickle 是否应该以某种方式await

例如,假设我有以下 async 类方法:

async def get(self, key):
redis = await self.getRedis()
data = await redis.get(key)
if not data:
return None

return pickle.loads(data)

async def set(self, key, value, ttlInSeconds):
pickled = pickle.dumps(value)

redis = await self.getRedis()
await redis.setex(key, pickled, ttlInSeconds)

如果我正在序列化或反序列化一个大对象,整个循环不会阻塞在 pickle 上吗?出于实用目的,对于较小的物体,这种瞬间阻塞是否可以接受?谢谢!

最佳答案

应该阻止 pickling,因为如果您的类中的另一个方法可以在 set() 仍在处理时执行和修改 value pickle.dumps(),pickle 后的数据会损坏。

即使该对象一次绝对只有一个实例,这也适用。

顺便说一句,在 get() 中,您可以为 return pickle.loads(data) 放置 await,因为您不太可能修改尚未从该方法返回的数据。

关于python - 将 Async/Await 与 Pickle 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44358705/

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