You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2012/10/03 22:36:59 UTC

git commit: [#5023] change mailbox find_and_modify loop to be a single query loop

Updated Branches:
  refs/heads/db/5023 78ab60f9a -> abff15a56


[#5023] change mailbox find_and_modify loop to be a single query loop


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/abff15a5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/abff15a5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/abff15a5

Branch: refs/heads/db/5023
Commit: abff15a568b3efc88e032408fdbb101861610983
Parents: 78ab60f
Author: Dave Brondsema <db...@geek.net>
Authored: Wed Oct 3 20:36:51 2012 +0000
Committer: Dave Brondsema <db...@geek.net>
Committed: Wed Oct 3 20:36:51 2012 +0000

----------------------------------------------------------------------
 Allura/allura/model/notification.py |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/abff15a5/Allura/allura/model/notification.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/notification.py b/Allura/allura/model/notification.py
index 704bf18..73efcc4 100644
--- a/Allura/allura/model/notification.py
+++ b/Allura/allura/model/notification.py
@@ -450,14 +450,18 @@ class Mailbox(MappedClass):
         q_digest = dict(
             type={'$in': ['digest', 'summary']},
             next_scheduled={'$lt':now})
-        for mbox in cls.query.find(q_direct):
+
+        def find_mboxes():
             mbox = cls.query.find_and_modify(
-                query=dict(_id=mbox._id),
-                update={'$set': dict(
-                            queue=[],
-                            queue_empty=True,
-                        )},
-                new=False)
+                    query=q_direct,
+                    update={'$set': dict(
+                                queue=[],
+                                queue_empty=True,
+                            )},
+                    new=False)
+            if mbox:
+                yield mbox
+        for mbox in find_mboxes():
             mbox.fire(now)
         for mbox in cls.query.find(q_digest):
             next_scheduled = now