mirror of
https://github.com/django-q2/django-q2.git
synced 2026-10-07 09:38:11 +08:00
Adds failed tasks filtering to groups
This commit is contained in:
+9
-4
@@ -32,9 +32,12 @@ class Task(models.Model):
|
||||
return Task.objects.get(name=task_id).result
|
||||
|
||||
@staticmethod
|
||||
def get_result_group(group_id):
|
||||
def get_result_group(group_id, failures=False):
|
||||
# values + decode is 10 times faster than just list comprehension
|
||||
values = Task.objects.filter(group=group_id).values_list('result', flat=True)
|
||||
if failures:
|
||||
values = Task.objects.filter(group=group_id).values_list('result', flat=True)
|
||||
else:
|
||||
values = Task.objects.filter(group=group_id).exclude(success=False).values_list('result', flat=True)
|
||||
return [dbsafe_decode(t) for t in values]
|
||||
|
||||
@staticmethod
|
||||
@@ -58,8 +61,10 @@ class Task(models.Model):
|
||||
return Task.objects.get(name=task_id)
|
||||
|
||||
@staticmethod
|
||||
def get_task_group(group_id):
|
||||
return Task.objects.filter(group=group_id)
|
||||
def get_task_group(group_id, failures=True):
|
||||
if failures:
|
||||
return Task.objects.filter(group=group_id)
|
||||
return Task.objects.filter(group_id=group_id).exclude(success=False)
|
||||
|
||||
def time_taken(self):
|
||||
return (self.stopped - self.started).total_seconds()
|
||||
|
||||
+6
-4
@@ -93,13 +93,14 @@ def result(task_id):
|
||||
return Task.get_result(task_id)
|
||||
|
||||
|
||||
def result_group(group_id):
|
||||
def result_group(group_id, failures=False):
|
||||
"""
|
||||
returns a list of results for a task group
|
||||
:param str group_id: the group id
|
||||
:param bool failures: set to True to include failures
|
||||
:return: list or results
|
||||
"""
|
||||
return Task.get_result_group(group_id)
|
||||
return Task.get_result_group(group_id, failures)
|
||||
|
||||
|
||||
def fetch(task_id):
|
||||
@@ -113,14 +114,15 @@ def fetch(task_id):
|
||||
return Task.get_task(task_id)
|
||||
|
||||
|
||||
def fetch_group(group_id):
|
||||
def fetch_group(group_id, failures=True):
|
||||
"""
|
||||
Returns a list of Tasks for a task group
|
||||
:param str group_id: the group id
|
||||
:param bool failures: set to False to exclude failures
|
||||
:return: list of Tasks
|
||||
"""
|
||||
|
||||
return Task.get_task_group(group_id)
|
||||
return Task.get_task_group(group_id, failures)
|
||||
|
||||
|
||||
def count_group(group_id, failures=False):
|
||||
|
||||
Reference in New Issue
Block a user