mirror of
https://github.com/clearml/clearml-server
synced 2025-04-26 08:59:33 +00:00
Fix task that is not in queue but has 'queued' status can't be dequeued
This commit is contained in:
parent
6e777e80b8
commit
4c22757002
@ -7,7 +7,7 @@ from redis import StrictRedis
|
||||
from six import string_types
|
||||
|
||||
import apiserver.database.utils as dbutils
|
||||
from apiserver.apierrors import errors
|
||||
from apiserver.apierrors import errors, APIError
|
||||
from apiserver.apimodels.tasks import TaskInputModel
|
||||
from apiserver.bll.queue import QueueBLL
|
||||
from apiserver.bll.organization import OrgBLL, Tags
|
||||
@ -453,11 +453,7 @@ class TaskBLL:
|
||||
"__", "."
|
||||
)
|
||||
raw_updates[value_iteration_field] = {
|
||||
"$cond": [
|
||||
condition,
|
||||
iter_value,
|
||||
f"${value_iteration_field}",
|
||||
]
|
||||
"$cond": [condition, iter_value, f"${value_iteration_field}",]
|
||||
}
|
||||
|
||||
for metric_key, metric_data in last_scalar_events.items():
|
||||
@ -525,8 +521,8 @@ class TaskBLL:
|
||||
status_reason: str,
|
||||
):
|
||||
try:
|
||||
cls.dequeue(task, company_id)
|
||||
except errors.bad_request.InvalidQueueOrTaskNotQueued:
|
||||
cls.dequeue(task, company_id, silent_fail=True)
|
||||
except APIError:
|
||||
# dequeue may fail if the queue was deleted
|
||||
pass
|
||||
|
||||
|
@ -81,6 +81,18 @@ class TestQueues(TestService):
|
||||
self.assertQueueTasks(res.queue, [task])
|
||||
self.assertTaskTags(task, system_tags=[])
|
||||
|
||||
def test_dequeue_not_queued_task(self):
|
||||
# queue = self._temp_queue("TestTempQueue")
|
||||
task_name = "TempDevTask"
|
||||
task = self._temp_task(task_name)
|
||||
self.api.tasks.edit(task=task, status="queued") # , execution={"queue": queue})
|
||||
res = self.api.tasks.get_by_id(task=task)
|
||||
self.assertEqual(res.task.status, "queued")
|
||||
|
||||
self.api.tasks.dequeue(task=task)
|
||||
res = self.api.tasks.get_by_id(task=task)
|
||||
self.assertEqual(res.task.status, "created")
|
||||
|
||||
def test_dequeue_from_deleted_queue(self):
|
||||
queue = self._temp_queue("TestTempQueue")
|
||||
task_name = "TempDevTask"
|
||||
|
Loading…
Reference in New Issue
Block a user