2013-08-13 11 views

Odpowiedz

2
cache._expire_info.get('foo') 

uzyskać uniksowego znacznika czasu

+0

Dzięki za wskazanie właściwego kierunku. To trochę trudniejsze. Musiałem to zrobić: 'key = cache.make_key ('foo')' 'cache.validate_key (klucz)' 't = cache._expire_info.get (key)' – petr0

+0

@ petr0, że nie był” w stanie uzyskać twoje podejście do pracy. Używam locMemCache, ale kiedy idę, aby pobrać czas wygaśnięcia przy użyciu 't = cache._expire_info.get ('keyname')', zwraca 'None'. Czy to błąd, czy też nie robię czegoś dobrze –

+0

@ austin-a, Czy użyłeś make_key? Klawisze są przechowywane wewnętrznie pod różnymi nazwami. 't = cache._expire_info.get (cache.make_key ('keyname'))' – petr0

1

aby uzyskać uniksowego znacznika czasu:

key = cache.make_key('foo') 
cache.validate_key(key) 
t = cache._expire_info.get(key) 

aby uzyskać czas absolutny:

datetime.datetime.fromtimestamp(t) 

zdobycia pozostały czas w sekundach:

(datetime.datetime.fromtimestamp(cache._expire_info.get(key)) - datetime.datetime.now()).seconds 

Zauważ, że wygląda to tak, że działa tylko w locmem, nie memcached, jeśli ktoś wie, jak to zrobić w memcached, proszę komentarz

+0

To rozwiązanie nie działa z memcached, przynajmniej w wersji django 1.7 –

+0

Żaden z nich nie działał w moim przypadku, ale wystąpił błąd: AttributeError: 'FileBasedCache "obiekt nie ma atrybutu" _expire_info " –

Powiązane problemy