Redefine the batch API to be very very simple. You call

batch::start() before starting a series of events, and batch::stop()
when you're done.

In batch mode, the notification module will store up pending
notifications.  When the batch job is complete, it'll send a single
digested email to each user for all of her notifications.

Updated the scaffold and local_import to use this.  Haven't modified
SimpleUploader yet.
This commit is contained in:
Bharat Mediratta
2009-03-04 08:51:49 +00:00
parent b493a534f2
commit 23b0abb974
10 changed files with 138 additions and 98 deletions
@@ -31,6 +31,13 @@ class notification_installer {
UNIQUE KEY (`item_id`, `user_id`),
UNIQUE KEY (`user_id`, `item_id`))
ENGINE=InnoDB DEFAULT CHARSET=utf8;");
$db->query("CREATE TABLE IF NOT EXISTS {pending_notifications} (
`id` int(9) NOT NULL auto_increment,
`email` varchar(128) NOT NULL,
`subject` varchar(255) NOT NULL,
`text` text,
PRIMARY KEY (`id`))
ENGINE=InnoDB DEFAULT CHARSET=utf8;");
module::set_version("notification", 1);
}
@@ -39,7 +46,8 @@ class notification_installer {
static function uninstall() {
$db = Database::instance();
$db->query("DROP TABLE IF EXISTS {subscriptions};");
$db->query("DROP TABLE IF EXISTS {pending_notifications};");
module::delete("notification");
}
}