Skip to content

Commit 062567f

Browse files
authored
Merges #1014 Closes #1014
2 parents 2b39056 + b0f1950 commit 062567f

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: Table showing jobs failing for offset-naive datetimes
3+
category: fixed
4+
author: Jose Javier Merchante <[email protected]>
5+
issue: null
6+
notes: >
7+
Showing jobs in the table combining scheduled jobs and one-time
8+
jobs failed.

sortinghat/core/jobs.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
from django.core.exceptions import ObjectDoesNotExist
3333
from django.db import IntegrityError, transaction, connection
34+
from grimoirelab_toolkit.datetime import datetime_utcnow
3435
from rq.job import Job
3536

3637
from .db import find_individual_by_uuid, find_organization
@@ -136,7 +137,7 @@ def job_in_tenant(job, tenant):
136137
jobs = (queue.jobs + started_jobs + deferred_jobs + finished_jobs + failed_jobs + scheduled_jobs)
137138
jobs = (job for job in jobs if job_in_tenant(job, tenant))
138139

139-
sorted_jobs = sorted(jobs, key=lambda x: x.enqueued_at if x.enqueued_at else datetime.datetime.utcnow(), reverse=True)
140+
sorted_jobs = sorted(jobs, key=lambda x: x.enqueued_at if x.enqueued_at else datetime_utcnow(), reverse=True)
140141

141142
logger.debug(f"List of jobs retrieved; total jobs: {len(sorted_jobs)};")
142143

@@ -881,7 +882,7 @@ def schedule_task(ctx, fn, task, scheduled_datetime=None, **kwargs):
881882
"""Schedule a task at a specific time and return the job created"""
882883

883884
if not scheduled_datetime:
884-
scheduled_datetime = datetime.datetime.now(datetime.timezone.utc)
885+
scheduled_datetime = datetime_utcnow()
885886

886887
job = get_tenant_queue(ctx.tenant).enqueue_at(datetime=scheduled_datetime,
887888
f=fn,
@@ -942,7 +943,7 @@ def on_success_job(job, connection, result, *args, **kwargs):
942943
logger.error("ScheduledTask not found. Not rescheduling.")
943944
return
944945

945-
task.last_execution = datetime.datetime.now(datetime.timezone.utc)
946+
task.last_execution = datetime_utcnow()
946947
task.executions = task.executions + 1
947948
task.failed = False
948949

@@ -958,7 +959,7 @@ def on_success_job(job, connection, result, *args, **kwargs):
958959
task.scheduled_datetime = None
959960
task.job_id = None
960961
else:
961-
scheduled_datetime = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(minutes=task.interval)
962+
scheduled_datetime = datetime_utcnow() + datetime.timedelta(minutes=task.interval)
962963
ctx = job.kwargs.pop('ctx')
963964
schedule_task(ctx, job.func, task, scheduled_datetime=scheduled_datetime, **job.kwargs)
964965

@@ -979,7 +980,7 @@ def on_failed_job(job, connection, result, *args, **kwargs):
979980
logger.error("ScheduledTask not found. Not rescheduling.")
980981
return
981982

982-
task.last_execution = datetime.datetime.now(datetime.timezone.utc)
983+
task.last_execution = datetime_utcnow()
983984
task.executions = task.executions + 1
984985
task.failures = task.failures + 1
985986
task.failed = True
@@ -989,7 +990,7 @@ def on_failed_job(job, connection, result, *args, **kwargs):
989990
task.scheduled_datetime = None
990991
task.job_id = None
991992
else:
992-
scheduled_datetime = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(minutes=task.interval)
993+
scheduled_datetime = datetime_utcnow() + datetime.timedelta(minutes=task.interval)
993994
ctx = job.kwargs.pop('ctx')
994995
schedule_task(ctx, job.func, task, scheduled_datetime=scheduled_datetime, **job.kwargs)
995996
logger.info(f"Reschedule task ID '{task.id}' at '{scheduled_datetime}'.")

0 commit comments

Comments
 (0)