Mercurial > public > src > rhodecode
diff pylons_app/lib/celerylib/tasks.py @ 541:fb0c3af6031b celery
Implemented locking for task, to prevent for running the same tasks,
moved out pidlock library. Added dirsize display
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 23 Sep 2010 01:08:33 +0200 |
parents | 2256c78afe53 |
children | ac32a026c306 |
line wrap: on
line diff
--- a/pylons_app/lib/celerylib/tasks.py Wed Sep 22 16:26:49 2010 +0200 +++ b/pylons_app/lib/celerylib/tasks.py Thu Sep 23 01:08:33 2010 +0200 @@ -2,7 +2,7 @@ from celery.task.sets import subtask from celeryconfig import PYLONS_CONFIG as config from pylons.i18n.translation import _ -from pylons_app.lib.celerylib import run_task +from pylons_app.lib.celerylib import run_task, LockTask from pylons_app.lib.helpers import person from pylons_app.lib.smtp_mailer import SmtpMailer from pylons_app.lib.utils import OrderedDict @@ -68,7 +68,7 @@ @task def whoosh_index(repo_location, full_index): log = whoosh_index.get_logger() - from pylons_app.lib.indexers import DaemonLock + from pylons_app.lib.pidlock import DaemonLock from pylons_app.lib.indexers.daemon import WhooshIndexingDaemon, LockHeld try: l = DaemonLock() @@ -80,7 +80,9 @@ log.info('LockHeld') return 'LockHeld' + @task +@LockTask('get_commits_stats') def get_commits_stats(repo_name, ts_min_y, ts_max_y): author_key_cleaner = lambda k: person(k).replace('"', "") #for js data compatibilty @@ -92,7 +94,7 @@ repo = MercurialRepository(repos_path + repo_name) skip_date_limit = True - parse_limit = 500 #limit for single task changeset parsing + parse_limit = 350 #limit for single task changeset parsing last_rev = 0 last_cs = None timegetter = itemgetter('time') @@ -205,7 +207,9 @@ log.error(traceback.format_exc()) sa.rollback() return False - + + run_task(get_commits_stats, repo_name, ts_min_y, ts_max_y) + return True @task