Google App Engine memcache documentation表示time
的{{1}}参数是“可选的到期时间,从当前时间(最多1个月)的相对秒数,或绝对的Unix纪元时光。“
所以我尝试设置30天的值,according to Google为2 592 000秒。
但是,我非常怀疑这个值太高了,因为设置了值(memcache.set()
返回了值memcache.set()
),但是在True
之后总是返回memcache.get()
}}。将此值减少到1 728 000 seconds只是按预期工作正常。
我想一旦传递了最高值,None
参数就被解释为绝对的Unix纪元时间。这意味着2 592 000秒被解释为“星期六,1970年1月31日00:00:00 GMT”,这显然是过去的日期......
您可以输入的最高值将来会被解释为几秒钟?
编辑:在本地开发服务器上,2 592 000秒工作正常,但不在生产服务器上。我想两台服务器对这些值有不同的解释。
答案 0 :(得分:3)
您关联的Google文档非常不精确;实际memcached documentation更具体,说该数字可能超过 2,592,000(30天秒)。所以从理论上说,这应该有效,除非实施问题。 (该声明在PHP documentation for its memcache stuff中得到了回应。)因此,根据memcached文档,您的第一个值应该有效。
我认为2,591,999不起作用? Google文档确实说“最多一个月”,如果你假设一个月内30天(不是一个有效的假设)那么最多 2,592,000(例如,但是不包括)。这与memcached文档不一致,但也许存在实现差异。