move UseThenDisconnect into queueworker

This makes the tests pass while maintaining the same behavior.
This commit is contained in:
Jimmy Zelinskie 2015-09-21 13:34:12 -04:00
parent 98d6262a7f
commit 7c82e0b5b3
2 changed files with 19 additions and 17 deletions

View file

@ -1,7 +1,6 @@
from datetime import datetime, timedelta
from app import app
from data.database import QueueItem, db, db_for_update, UseThenDisconnect
from data.database import QueueItem, db, db_for_update
from util.morecollections import AttrDict
@ -69,24 +68,23 @@ class WorkQueue(object):
return db_for_update(QueueItem.select().where(QueueItem.id == queue_id)).get()
def get_metrics(self, require_transaction=True):
with UseThenDisconnect(app.config):
guard = self._transaction_factory(db) if require_transaction else NoopWith()
with guard:
now = datetime.utcnow()
name_match_query = self._name_match_query()
guard = self._transaction_factory(db) if require_transaction else NoopWith()
with guard:
now = datetime.utcnow()
name_match_query = self._name_match_query()
running_query = self._running_jobs(now, name_match_query)
running_count = running_query.distinct().count()
running_query = self._running_jobs(now, name_match_query)
running_count = running_query.distinct().count()
available_query = self._available_jobs(now, name_match_query)
available_count = available_query.select(QueueItem.queue_name).distinct().count()
available_query = self._available_jobs(now, name_match_query)
available_count = available_query.select(QueueItem.queue_name).distinct().count()
available_not_running_query = self._available_jobs_not_running(now, name_match_query,
running_query)
available_not_running_count = (available_not_running_query.select(QueueItem.queue_name)
.distinct().count())
available_not_running_query = self._available_jobs_not_running(now, name_match_query,
running_query)
available_not_running_count = (available_not_running_query.select(QueueItem.queue_name)
.distinct().count())
return (running_count, available_not_running_count, available_count)
return (running_count, available_not_running_count, available_count)
def update_metrics(self):
if self._reporter is None and self._metric_queue is None: