我想在内存/内存缓存中运行一些数据。重要的是,我希望不要丢失这些数据,因此当GAE决定从内存中卸载数据时,我希望将其保存到持久存储中。
我是否正确无法检测GAE的memcached对象卸载事件?
我是否仍会覆盖__del__()
以将全局变量的值保存到数据存储区? (对我来说很难验证这个案例。)
答案 0 :(得分:4)
对不起,但这完全是错误的做法。正确的做法是将数据写入数据存储区和内存缓存,然后尝试从内存缓存中读取数据,如果不是从数据存储区读取数据并将其写回内存缓存区。
重载__del__
也是一个坏主意;一般来说这是一个坏主意,并且为此目的它是灾难性的,因为有许多原因可以在不调用任何__del__
方法的情况下终止您的进程。 (例如,内存不足的情况,Python或Linux内核的硬崩溃,硬件故障等等。)
如果您想要一种简单的方法来集成memcache和数据存储而不必考虑它,请尝试NDB - 它会为您透明地执行此操作。