正在检测GAE中从memache/内存卸载的对象



我想操作内存/内存缓存中的一些数据。重要的是,我不想丢失这些数据,所以当GAE决定将其从内存中卸载时,我想将其保存到持久存储中。

我是不是没有办法检测GAE的memcached对象卸载事件?

我仍然可以覆盖__del__()以将全局变量的值保存到数据存储吗?(我很难验证这种情况。)

很抱歉,但这完全是错误的做法。正确的做法是将数据写入数据存储和memcache,然后尝试从memcache读取数据,如果没有,则从数据存储读取数据并将其写回memcache。

过载__del__也是个坏主意;一般来说,这是一个坏主意,出于这个目的,这是灾难性的,因为在不调用任何__del__方法的情况下,您的进程可能会被终止,原因有很多。(例如内存严重不足、Python或Linux内核严重崩溃、硬件故障等。)

如果您想要一种简单的方法来集成memcache和数据存储,而不必考虑它,请尝试NDB——它可以为您透明地实现这一点。

最新更新