function prune($inM)
{
// 40 seconds ? to delete 100K records..
- DB_DataObject::debugLevel(1);
+ // DB_DataObject::debugLevel(1);
$f = DB_DataObject::Factory('reader_article');
$f->query("
DELETE FROM Events where
");
// notificication events occur alot - so we should trash them more frequently..
- $f = DB_DataObject::Factory('reader_article');
+ /* $f = DB_DataObject::Factory('reader_article');
$f->query("
DELETE FROM Events where
event_when < NOW() - INTERVAL 1 MONTH
AND
- action IN ('RELOAD', 'LOGIN')
+ action IN ('NOTIFY')
LIMIT 100000
");
+ */
+ // rather than deleting them all, it's probably best to just delete notify events that occured to often.
+ // eg. when we tried to deliver multiple times without success...
+
+
+ $f = DB_DataObject::Factory('Events');
+ $f->selectAdd();
+ $f->selectAdd("on_id, min(id) as min_id, max(id) as max_id, count(*) as mm");
+ $f->whereAdd("action = 'NOTIFY' and event_when < NOW() - INTERVAL 1 WEEK");
+ $f->groupBy('on_id');
+ $f->having("mm > 2");
+ $f->orderBy('mm desc') ;
+ $f->limit(1000);
+ $ar = $f->fetchAll();
+ foreach($ar as $f) {
+ $f = DB_DataObject::Factory('Events');
+ $f->query("DELETE FROM Events where
+ action = 'NOTIFY'
+ AND
+ on_id = {$f->on_id}
+ AND
+ id > {$f->min_id} AND id < {$f->max_id}
+ ");
+ }
+
+
+
+
+
// pruning is for our press project - so we do not clean up dependant tables at present..