You seem to have an old version of session2strash.py. The new one only uses
self.expiration and not expiration.
On Sunday, 9 August 2015 10:15:57 UTC-5, Bob St John wrote:
>
> Using 2.12.1
>
> I run a small site... about 200 members who login (some using the
> 'Remember me for 30 days') plus about 1500 public visitors per day. The
> sessions are stored in the file system. I run the sessions2trash.py script
> once a day. I have noticed the sessions are increasing by about 1000 per
> day which did not seem right. I made the following changes to trash() and
> now the sessions remaining after being 'trashed' is about 200-300, which
> seems correct. I think the problem was when a large expiration was saved
> (30 days) and the next expired public sessions were not trashed....
>
>
> CURRENT TRASH:
> def trash(self):
> """Trash expired sessions."""
> now = datetime.datetime.now()
> for item in self.get():
> status = 'OK'
> last_visit = item.last_visit_default()
>
> try:
> session = item.get()
> if session.auth:
> if session.auth.expiration and not self.force:
> self.expiration = session.auth.expiration
> if session.auth.last_visit:
> last_visit = session.auth.last_visit
> except:
> pass
>
> age = 0
> if last_visit:
> age = total_seconds(now - last_visit)
>
> if age > self.expiration or not self.expiration:
> item.delete()
> status = 'trashed'
>
> if self.verbose > 1:
> print 'key: %s' % str(item)
> print 'expiration: %s seconds' % self.expiration
> print 'last visit: %s' % str(last_visit)
> print 'age: %s seconds' % age
> print 'status: %s' % status
> print ''
> elif self.verbose > 0:
> print('%s %s' % (str(item), status))
>
> MODIFIED TRASH:
> def trash(self):
> """Trash expired sessions."""
> now = datetime.datetime.now()
> for item in self.get():
> status = 'OK'
> last_visit = item.last_visit_default()
> expiration = self.expiration ### added this
>
> try:
> session = item.get()
> if session.auth:
> if session.auth.expiration and not self.force:
> ###self.expiration = session.auth.expiration
> expiration = session.auth.expiration
> if session.auth.last_visit:
> last_visit = session.auth.last_visit
> except:
> pass
>
> age = 0
> if last_visit:
> age = total_seconds(now - last_visit)
>
> ###if age > self.expiration or not self.expiration:
> if age > expiration or not expiration:
> item.delete()
> status = 'trashed'
>
> if self.verbose > 1:
> print 'key: %s' % str(item)
> print 'expiration: %s seconds' % self.expiration
> print 'last visit: %s' % str(last_visit)
> print 'age: %s seconds' % age
> print 'status: %s' % status
> print ''
> elif self.verbose > 0:
> print('%s %s' % (str(item), status))
>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.