var $cli = false;
function getAuth() {
+
+
$ff = HTML_FlexyFramework::get();
if (!empty($ff->cli)) {
$this->cli = true;
return true;
}
-// return true;// for test only
+
+ // return true;// for test only
return false;
}
- function get($m="", $opts)
+ function get($m="", $opts=array())
{
-
- // prune irrelivant stuff..
+ // prune irrelivant stuff..
{
// 40 seconds ? to delete 100K records..
// DB_DataObject::debugLevel(1);
- $f = DB_DataObject::Factory('reader_article');
+ /*
+ $f = DB_DataObject::Factory('Events');
$f->query("
DELETE FROM Events where
event_when < NOW() - INTERVAL {$inM} MONTH
+ AND
+ action != 'NOTIFY'
LIMIT 100000
");
-
+ */
// notificication events occur alot - so we should trash them more frequently..
/* $f = DB_DataObject::Factory('reader_article');
$f->query("
*/
// 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...
+ /*
+ *
+ SELECT on_id, on_table, min(id) as min_id, max(id) as max_id, count(*) as mm FROM Events
+ WHERE action = 'NOTIFY' and event_when < NOW() - INTERVAL 1 WEEK GROUP BY on_id, on_table HAVING mm > 2 ORDER BY mm desc;
+ */
-
+ //DB_DataObject::debugLevel(1);
+ $f = DB_DataObject::Factory('Events');
+ $before = $f->count();
+
$f = DB_DataObject::Factory('Events');
$f->selectAdd();
$f->selectAdd("on_id, on_table, min(id) as min_id, max(id) as max_id, count(*) as mm");
$f->groupBy('on_id, on_table');
$f->having("mm > 2");
$f->orderBy('mm desc') ;
- $f->limit(1000);
+ $f->limit(10000);
$ar = $f->fetchAll();
+
foreach($ar as $f) {
$q = DB_DataObject::Factory('Events');
$q->query("DELETE FROM Events where
AND
on_table = '{$q->escape($f->on_table)}'
AND
- id > {$f->min_id}
+ id > {$f->min_id} -- allow the first one to stay....
AND
- id < {$f->max_id}
+ id <= {$f->max_id}
");
}
-
+ $f = DB_DataObject::Factory('Events');
+ $after = $f->count();
+ echo "DELETED : " . ($before - $after) . " records\n";