27 lines
690 B
Python
27 lines
690 B
Python
from django.core.cache import cache
|
|
from django.utils import timezone
|
|
|
|
|
|
def increment_cache_key(cache_key):
|
|
try:
|
|
cache.incr(cache_key)
|
|
except ValueError:
|
|
cache.set(cache_key, 1, None)
|
|
|
|
|
|
def stats_snapshot(reset=True):
|
|
last_now = cache.get('apistats_last_reset', '', None)
|
|
now = timezone.now()
|
|
results = {}
|
|
for key in cache.keys('apistats__*'):
|
|
results[key] = cache.get(key)
|
|
if reset:
|
|
cache.delete(key)
|
|
if reset:
|
|
cache.set('apistats_last_reset', now, None)
|
|
results = dict(sorted(results.items()))
|
|
return {
|
|
'start_date': str(last_now),
|
|
'end_date': str(now),
|
|
'data': results
|
|
}
|