mirror of
https://github.com/clearml/clearml-server
synced 2025-02-12 07:38:28 +00:00
Fix queue update time to update when task is taken from queue, not when queried
This commit is contained in:
parent
135885b609
commit
8630cc1021
@ -9,9 +9,12 @@ import es_factory
|
|||||||
from apierrors import errors
|
from apierrors import errors
|
||||||
from bll.queue.queue_metrics import QueueMetrics
|
from bll.queue.queue_metrics import QueueMetrics
|
||||||
from bll.workers import WorkerBLL
|
from bll.workers import WorkerBLL
|
||||||
|
from config import config
|
||||||
from database.errors import translate_errors_context
|
from database.errors import translate_errors_context
|
||||||
from database.model.queue import Queue, Entry
|
from database.model.queue import Queue, Entry
|
||||||
|
|
||||||
|
log = config.logger(__file__)
|
||||||
|
|
||||||
|
|
||||||
class QueueBLL(object):
|
class QueueBLL(object):
|
||||||
def __init__(self, worker_bll: WorkerBLL = None, es: Elasticsearch = None):
|
def __init__(self, worker_bll: WorkerBLL = None, es: Elasticsearch = None):
|
||||||
@ -189,9 +192,7 @@ class QueueBLL(object):
|
|||||||
"""
|
"""
|
||||||
with translate_errors_context():
|
with translate_errors_context():
|
||||||
query = dict(id=queue_id, company=company_id)
|
query = dict(id=queue_id, company=company_id)
|
||||||
queue = Queue.objects(**query).modify(
|
queue = Queue.objects(**query).modify(pop__entries=-1, upsert=False)
|
||||||
pop__entries=-1, last_update=datetime.utcnow(), upsert=False
|
|
||||||
)
|
|
||||||
if not queue:
|
if not queue:
|
||||||
raise errors.bad_request.InvalidQueueId(**query)
|
raise errors.bad_request.InvalidQueueId(**query)
|
||||||
|
|
||||||
@ -200,6 +201,11 @@ class QueueBLL(object):
|
|||||||
if not queue.entries:
|
if not queue.entries:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
Queue.objects(**query).update(last_update=datetime.utcnow())
|
||||||
|
except Exception:
|
||||||
|
log.exception("Error while updating Queue.last_update")
|
||||||
|
|
||||||
return queue.entries[0]
|
return queue.entries[0]
|
||||||
|
|
||||||
def remove_task(self, company_id: str, queue_id: str, task_id: str) -> int:
|
def remove_task(self, company_id: str, queue_id: str, task_id: str) -> int:
|
||||||
|
Loading…
Reference in New Issue
Block a user