Ich bin neu in async
/await
, und ich stieß auf ein bisschen Verwirrung. Sollte pickle
await
irgendwie ed sein?Verwendung von Async/Warten mit Gurke
Zum Beispiel sagen, dass ich die folgenden async
Klassenmethoden haben:
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)
Wenn ich die Serialisierung oder ein großes Objekt deserialisieren, wird nicht die gesamte Loop-Block auf pickle
? Für praktische Zwecke, mit kleineren Objekten, ist diese vorübergehende Blockierung akzeptabel? Vielen Dank!
Ich sehe, danke! Ich nehme an, dass ich den "alles oder nichts" Rat über async ein wenig zu ernst genommen habe. Ich hatte den Eindruck, dass Sie den gesamten Blockiercode "run_in_executor()" ausführen müssen. – Will