2013-03-20 19:45:39 -07:00
|
|
|
import math
|
2024-04-24 09:50:42 -04:00
|
|
|
|
2013-03-20 19:45:39 -07:00
|
|
|
import redis
|
|
|
|
from django.conf import settings
|
|
|
|
from django.contrib.sessions.models import Session
|
|
|
|
|
|
|
|
sessions_count = Session.objects.count()
|
2020-06-15 05:09:10 -04:00
|
|
|
print((" ---> %s sessions in Django" % sessions_count))
|
2013-03-20 22:00:03 -07:00
|
|
|
batch_size = 1000
|
2013-03-20 19:45:39 -07:00
|
|
|
r = redis.Redis(connection_pool=settings.REDIS_SESSION_POOL)
|
|
|
|
|
2024-04-24 09:43:56 -04:00
|
|
|
for batch in range(int(math.ceil(sessions_count / batch_size)) + 1):
|
2013-03-20 19:45:39 -07:00
|
|
|
start = batch * batch_size
|
|
|
|
end = (batch + 1) * batch_size
|
2020-06-15 05:09:10 -04:00
|
|
|
print((" ---> Loading sessions #%s - #%s" % (start, end)))
|
2013-03-20 19:54:36 -07:00
|
|
|
pipe = r.pipeline()
|
2013-03-20 19:45:39 -07:00
|
|
|
for session in Session.objects.all()[start:end]:
|
2013-03-20 19:54:36 -07:00
|
|
|
_ = pipe.set(session.session_key, session.session_data)
|
|
|
|
_ = pipe.expireat(session.session_key, session.expire_date.strftime("%s"))
|
2024-04-24 09:43:56 -04:00
|
|
|
_ = pipe.execute()
|