下面的代码显示了我在python程序中通常会做的事情。
class LogOnline(ndb.Model):
_timeOnline = ndb.DateTimeProperty(default=None)
@property
def timeOnline(self):
return self._timeOnline
@timeOnline.setter
def timeOnline(self, dateTime):
self._timeOnline = dateTime
#set memcache with all current online users
#.....
但是此代码不起作用,因为应用引擎不允许属性以'_'开头 此外,我觉得这种类型的架构可能是不好的做法,因为它可能会在课堂上进行查询时遇到问题。
最好的方法是什么?
答案 0 :(得分:1)
你可以做的是让timeOnline成为没有下划线的属性,但是添加_post_put_hook来更新内存缓存。
class LogOnline(ndb.Model):
timeOnline = ndb.DateTimeProperty(default=None)
def _post_put_hook(self, future):
future.get_result() #wait untill the PUT operation has completed
#set memcache with all current online users
...