$this->generateNotifications();
-
+ $this->assignQueues();
+
//DB_DataObject::debugLevel(1);
$w = DB_DataObject::factory($this->table);
$total = 0;
$w->evtype = $this->evtype;
}
+ $ff = HTML_FlexyFramework::get();
+ if (!empty($ff->Core_Notify['servers'])) {
+ if (!isset($ff->Core_Notify['servers'][gethostname()])) {
+ $this->jerr("Core_Notify['servers']['" . gethostname() ."'] is not set");
+ }
+ $w->server_id = array_search(gethostname(),array_keys($ff->Core_Notify['servers']));
+ }
+
+
+
+
+ $this->addFilter($w);
+
$w->autoJoin();
$w->find();
exit;
}
+
+
+
function generateNotifications()
{
// this should check each module for 'GenerateNotifications.php' class..
}
-
+ function assignQueues()
+ {
+ $ff = HTML_FlexyFramework::get();
+
+ if (empty($ff->Core_Notify['servers'])) {
+ return;
+ }
+
+ $num_servers = count(array_keys($ff->Core_Notify['servers']));
+
+ // 6 seconds on this machne...
+ $p->query("
+ UPDATE
+ {$this->table}
+ SET
+ server_id = ((@row_number := CASE WHEN @row_number IS NULL THEN 0 ELSE @row_number END +1) % {$num_servers})
+ WHERE
+ sent < '2000-01-01'
+ and
+ event_id = 0
+ and
+ act_start < NOW()
+ and
+ server_id < 0
+ ORDER BY
+ id ASC
+ LIMIT
+ 20000
+ ");
+
+
+ }
function run($id, $email='', $cmdOpts="")
{