1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Work on job scheduling:

* Added JobResult form filtersets
* Change housekeeping cleanup delete from `_raw_delete` to `delete` to make sure scheduled tasks are cancelled
* Change default sort of JobResult table to -created
* Added `delete` override to `JobResult` to remove scheduled tasks from RQ when a JobResult is deleted
* Updated js/css dist files. Will need to be redone when develop is merged to feature.
This commit is contained in:
kkthxbye-code
2022-10-09 21:05:31 +02:00
parent 53c8a48244
commit 679a9e839b
14 changed files with 94 additions and 106 deletions

View File

@@ -528,13 +528,22 @@ class JobResult(models.Model):
objects = RestrictedQuerySet.as_manager()
class Meta:
ordering = ['obj_type', 'name', '-created']
ordering = ['-created']
def __str__(self):
return str(self.job_id)
def delete(self, *args, **kwargs):
queue = django_rq.get_queue("default")
job = queue.fetch_job(str(self.job_id))
if job:
job.cancel()
return super().delete(*args, **kwargs)
def get_absolute_url(self):
return reverse('extras:jobresult', args=[self.pk])
return reverse(f'extras:{self.obj_type.name}_result', args=[self.pk])
@property
def duration(self):
@@ -579,7 +588,7 @@ class JobResult(models.Model):
if schedule_at := kwargs.pop("schedule_at", None):
job_result.status = JobResultStatusChoices.STATUS_SCHEDULED
job_result.save()
queue.enqueue_at(schedule_at, func, job_id=str(job_result.job_id), job_result=job_result, **kwargs)
else:
queue.enqueue(func, job_id=str(job_result.job_id), job_result=job_result, **kwargs)