From 95d1d051d2a5e828fe6635c6a44be3f5a1fe1d57 Mon Sep 17 00:00:00 2001 From: Javier Baena Date: Thu, 23 Jan 2014 16:42:28 +0100 Subject: [PATCH] Added remove method to Store, used when removing processed one-time events --- src/PersistentScheduler.coffee | 3 ++- src/Store.coffee | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/PersistentScheduler.coffee b/src/PersistentScheduler.coffee index d1266c8..8eb68e1 100644 --- a/src/PersistentScheduler.coffee +++ b/src/PersistentScheduler.coffee @@ -125,8 +125,9 @@ class PersistentScheduler extends Scheduler if err then throw new util.Error err todoEvents = unsolvedOneTimeEvents.concat oneTimeEvents - for {timestamp, event, payload} in todoEvents + for {id, timestamp, event, payload} in todoEvents @schedule timestamp, event, payload + @store.remove id, () -> # Public api. diff --git a/src/Store.coffee b/src/Store.coffee index ea08b09..22af5ff 100644 --- a/src/Store.coffee +++ b/src/Store.coffee @@ -148,6 +148,16 @@ class Store return callback null, event.done is true + remove: (eventId, callback) -> + ### + Removes a one-time event. + @return {Boolean} whether the event was removed or not. + ### + @EventModel.remove {_id: eventId}, + (err) -> + if err? then return callback err + return callback null, true + # Public API module.exports = Store