mirror of
https://github.com/clearml/clearml-server
synced 2025-06-26 23:15:47 +00:00
Fix task stats update
This commit is contained in:
parent
ddb91f226a
commit
a4fa567be2
@ -41,7 +41,7 @@ from apiserver.database.model.task.task import Task, TaskStatus
|
|||||||
from apiserver.redis_manager import redman
|
from apiserver.redis_manager import redman
|
||||||
from apiserver.timing_context import TimingContext
|
from apiserver.timing_context import TimingContext
|
||||||
from apiserver.tools import safe_get
|
from apiserver.tools import safe_get
|
||||||
from apiserver.utilities.dicts import flatten_nested_items, nested_get
|
from apiserver.utilities.dicts import nested_get
|
||||||
from apiserver.utilities.json import loads
|
from apiserver.utilities.json import loads
|
||||||
|
|
||||||
# noinspection PyTypeChecker
|
# noinspection PyTypeChecker
|
||||||
@ -396,33 +396,17 @@ class EventBLL(object):
|
|||||||
as the latest metric/variant scalar values reported (according to the report timestamp) and the task's last
|
as the latest metric/variant scalar values reported (according to the report timestamp) and the task's last
|
||||||
update time.
|
update time.
|
||||||
"""
|
"""
|
||||||
fields = {}
|
if iter_max is None and not last_events and not last_scalar_events:
|
||||||
|
|
||||||
if iter_max is not None:
|
|
||||||
fields["last_iteration_max"] = iter_max
|
|
||||||
|
|
||||||
if last_scalar_events:
|
|
||||||
fields["last_scalar_values"] = list(
|
|
||||||
flatten_nested_items(
|
|
||||||
last_scalar_events,
|
|
||||||
nesting=2,
|
|
||||||
include_leaves=[
|
|
||||||
"value",
|
|
||||||
"min_value",
|
|
||||||
"max_value",
|
|
||||||
"metric",
|
|
||||||
"variant",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if last_events:
|
|
||||||
fields["last_events"] = last_events
|
|
||||||
|
|
||||||
if not fields:
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return TaskBLL.update_statistics(task_id, company_id, last_update=now, **fields)
|
return TaskBLL.update_statistics(
|
||||||
|
task_id,
|
||||||
|
company_id,
|
||||||
|
last_update=now,
|
||||||
|
last_iteration_max=iter_max,
|
||||||
|
last_scalar_events=last_scalar_events,
|
||||||
|
last_events=last_events,
|
||||||
|
)
|
||||||
|
|
||||||
def _get_event_id(self, event):
|
def _get_event_id(self, event):
|
||||||
id_values = (str(event[field]) for field in self.id_fields if field in event)
|
id_values = (str(event[field]) for field in self.id_fields if field in event)
|
||||||
|
@ -19,4 +19,8 @@ hyperparam_values {
|
|||||||
|
|
||||||
# cache ttl sec
|
# cache ttl sec
|
||||||
cache_ttl_sec: 86400
|
cache_ttl_sec: 86400
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# the maximum amount of unique last metrics/variants combinations
|
||||||
|
# for which the last values are stored in a task
|
||||||
|
max_last_metrics: 2000
|
||||||
|
@ -60,6 +60,20 @@ class TestQueues(TestService):
|
|||||||
self.assertQueueTasks(res.queue, [task])
|
self.assertQueueTasks(res.queue, [task])
|
||||||
self.assertTaskTags(task, system_tags=[])
|
self.assertTaskTags(task, system_tags=[])
|
||||||
|
|
||||||
|
def test_dequeue_from_deleted_queue(self):
|
||||||
|
queue = self._temp_queue("TestTempQueue")
|
||||||
|
task_name = "TempDevTask"
|
||||||
|
task = self._temp_task(task_name)
|
||||||
|
|
||||||
|
self.api.tasks.enqueue(task=task, queue=queue)
|
||||||
|
res = self.api.tasks.get_by_id(task=task)
|
||||||
|
self.assertEqual(res.task.status, "queued")
|
||||||
|
|
||||||
|
self.api.queues.delete(queue=queue, force=True)
|
||||||
|
self.api.tasks.dequeue(task=task)
|
||||||
|
res = self.api.tasks.get_by_id(task=task)
|
||||||
|
self.assertEqual(res.task.status, "created")
|
||||||
|
|
||||||
def test_max_queue_entries(self):
|
def test_max_queue_entries(self):
|
||||||
queue = self._temp_queue("TestTempQueue")
|
queue = self._temp_queue("TestTempQueue")
|
||||||
tasks = [
|
tasks = [
|
||||||
|
Loading…
Reference in New Issue
Block a user