better session2trash logging
This commit is contained in:
+1
-1
Submodule gluon/packages/dal updated: 252e004be8...651afafcf5
+12
-12
@@ -41,7 +41,7 @@ from __future__ import with_statement
|
|||||||
from gluon import current
|
from gluon import current
|
||||||
from gluon.storage import Storage
|
from gluon.storage import Storage
|
||||||
from gluon._compat import pickle
|
from gluon._compat import pickle
|
||||||
from optparse import OptionParser
|
|
||||||
import datetime
|
import datetime
|
||||||
import stat
|
import stat
|
||||||
import time
|
import time
|
||||||
@@ -62,13 +62,12 @@ class SessionSet(object):
|
|||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
"""Get session files/records."""
|
"""Get session files/records."""
|
||||||
raise NotImplementedError
|
raise NotImplementedError()
|
||||||
|
|
||||||
def trash(self):
|
def trash(self):
|
||||||
"""Trash expired sessions."""
|
"""Trash expired sessions."""
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
for item in self.get():
|
for item in self.get():
|
||||||
status = 'OK'
|
|
||||||
last_visit = item.last_visit_default()
|
last_visit = item.last_visit_default()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -88,16 +87,18 @@ class SessionSet(object):
|
|||||||
if age > self.expiration or not self.expiration:
|
if age > self.expiration or not self.expiration:
|
||||||
item.delete()
|
item.delete()
|
||||||
status = 'trashed'
|
status = 'trashed'
|
||||||
|
else:
|
||||||
|
status = 'OK'
|
||||||
|
|
||||||
if self.verbose > 1:
|
if self.verbose > 1:
|
||||||
print('key: %s' % str(item))
|
print('key: %s' % item)
|
||||||
print('expiration: %s seconds' % self.expiration)
|
print('expiration: %s seconds' % self.expiration)
|
||||||
print('last visit: %s' % str(last_visit))
|
print('last visit: %s' % last_visit)
|
||||||
print('age: %s seconds' % age)
|
print('age: %s seconds' % age)
|
||||||
print('status: %s' % status)
|
print('status: %s' % status)
|
||||||
print('')
|
print('')
|
||||||
elif self.verbose > 0:
|
elif self.verbose > 0:
|
||||||
print('%s %s' % (str(item), status))
|
print('%s %s' % (item, status))
|
||||||
|
|
||||||
|
|
||||||
class SessionSetDb(SessionSet):
|
class SessionSetDb(SessionSet):
|
||||||
@@ -179,8 +180,8 @@ class SessionFile(object):
|
|||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
session = Storage()
|
session = Storage()
|
||||||
with open(self.filename, 'rb+') as f:
|
with open(self.filename, 'rb') as f:
|
||||||
session.update(cPickle.load(f))
|
session.update(pickle.load(f))
|
||||||
return session
|
return session
|
||||||
|
|
||||||
def last_visit_default(self):
|
def last_visit_default(self):
|
||||||
@@ -198,8 +199,7 @@ def total_seconds(delta):
|
|||||||
Args:
|
Args:
|
||||||
delta: datetime.timedelta instance.
|
delta: datetime.timedelta instance.
|
||||||
"""
|
"""
|
||||||
return (delta.microseconds + (delta.seconds + (delta.days * 24 * 3600)) *
|
return (delta.microseconds + (delta.seconds + (delta.days * 86400)) * 1000000) / 1e6
|
||||||
10 ** 6) / 10 ** 6
|
|
||||||
|
|
||||||
def single_loop(expiration=None, force=False, verbose=False):
|
def single_loop(expiration=None, force=False, verbose=False):
|
||||||
if expiration is None:
|
if expiration is None:
|
||||||
@@ -216,9 +216,9 @@ def single_loop(expiration=None, force=False, verbose=False):
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""Main processing."""
|
"""Main processing."""
|
||||||
|
from optparse import OptionParser
|
||||||
|
|
||||||
usage = '%prog [options]' + '\nVersion: %s' % VERSION
|
parser = OptionParser(usage="%%prog [options]\nVersion: %s" % VERSION)
|
||||||
parser = OptionParser(usage=usage)
|
|
||||||
|
|
||||||
parser.add_option('-f', '--force',
|
parser.add_option('-f', '--force',
|
||||||
action='store_true', dest='force', default=False,
|
action='store_true', dest='force', default=False,
|
||||||
|
|||||||
Reference in New Issue
Block a user