我有一个奇怪的问题。在一项任务中,我从数据存储中获取数据并将其异步写入内存缓存:
ke = database.Events.query(database.Events.eventid.IN(eventslist))
eventskeys = ke.fetch(len(eventslist),keys_only = True)
data = ndb.get_multi(eventskeys)
eventsdic = {}
for event in data:
eventsdic.update({event.eventid: event.participants})
client = memcache.Client()
rpc = memcache.create_rpc()
response = client.set_multi_async(eventsdic, time=3600, rpc=rpc)
事件列表中有 20 个项目。我对分布在队列中不同任务的大约 500 个项目执行此操作。
我没有收到任何错误。但我注意到,在第一次尝试中,500 个事件中只有大约 300 个事件确实存在于内存缓存中。如果我只对尚未在内存缓存中的事件进行 2-3 次重试,那么一段时间后我将 100% 保存在内存缓存中。
但我真的不明白,为什么它在第一次尝试时不起作用?