You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2013/02/11 19:45:55 UTC
[2/2] git commit: [#5705] Add delay to update bin counts task
Updated Branches:
refs/heads/master de0f3bd40 -> 2ee14f666
[#5705] Add delay to update bin counts task
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/ccec7e65
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/ccec7e65
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/ccec7e65
Branch: refs/heads/master
Commit: ccec7e65ac0fcd2c2b8cc8a37d87934cdb9dc5c4
Parents: de0f3bd
Author: Tim Van Steenburgh <tv...@gmail.com>
Authored: Fri Feb 8 22:02:39 2013 +0000
Committer: Cory Johns <jo...@geek.net>
Committed: Mon Feb 11 18:45:35 2013 +0000
----------------------------------------------------------------------
Allura/allura/lib/decorators.py | 5 +++--
Allura/allura/model/monq_model.py | 9 ++++++---
ForgeTracker/forgetracker/model/ticket.py | 2 +-
3 files changed, 10 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ccec7e65/Allura/allura/lib/decorators.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/decorators.py b/Allura/allura/lib/decorators.py
index bd26b1e..a8ad5ec 100644
--- a/Allura/allura/lib/decorators.py
+++ b/Allura/allura/lib/decorators.py
@@ -14,7 +14,8 @@ def task(func):
'''Decorator to add some methods to task functions'''
def post(*args, **kwargs):
from allura import model as M
- return M.MonQTask.post(func, args, kwargs)
+ delay = kwargs.pop('delay', 0)
+ return M.MonQTask.post(func, args, kwargs, delay=delay)
func.post = post
return func
@@ -195,4 +196,4 @@ def memoize(func, *args):
else:
result = func(*args)
dic[args] = result
- return result
\ No newline at end of file
+ return result
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ccec7e65/Allura/allura/model/monq_model.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/monq_model.py b/Allura/allura/model/monq_model.py
index 62b8fc4..3ec5e77 100644
--- a/Allura/allura/model/monq_model.py
+++ b/Allura/allura/model/monq_model.py
@@ -2,7 +2,7 @@ import sys
import time
import traceback
import logging
-from datetime import datetime
+from datetime import datetime, timedelta
import pymongo
from pylons import c, g
@@ -113,7 +113,8 @@ class MonQTask(MappedClass):
args=None,
kwargs=None,
result_type='forget',
- priority=10):
+ priority=10,
+ delay=0):
'''Create a new task object based on the current context.'''
if args is None: args = ()
if kwargs is None: kwargs = {}
@@ -141,7 +142,8 @@ class MonQTask(MappedClass):
kwargs=kwargs,
process=None,
result=None,
- context=context)
+ context=context,
+ time_queue=datetime.utcnow() + timedelta(seconds=delay))
session(obj).flush(obj)
try:
if g.amq_conn:
@@ -164,6 +166,7 @@ class MonQTask(MappedClass):
while True:
try:
query = dict(state=state)
+ query['time_queue'] = {'$lt': datetime.utcnow()}
if only:
query['task_name'] = {'$in': only}
obj = cls.query.find_and_modify(
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ccec7e65/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index 96f3f7e..ada1cae 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -162,7 +162,7 @@ class Globals(MappedClass):
return
self._bin_counts_invalidated = datetime.utcnow()
from forgetracker import tasks # prevent circular import
- tasks.update_bin_counts.post(self.app_config_id)
+ tasks.update_bin_counts.post(self.app_config_id, delay=5)
def sortable_custom_fields_shown_in_search(self):
return [dict(sortable_name='%s_s' % field['name'],