From 30261b010aa902de1d278382b5001ba571118cae Mon Sep 17 00:00:00 2001 From: "v.kaukin" Date: Tue, 11 Jan 2022 16:38:02 +0500 Subject: [PATCH 1/7] TaskAdmin +readonly_fields "created_at", "updated_at"; fix setup name --- .gitignore | 1 + CONTRIBUTORS.md | 1 + django_dramatiq/admin.py | 18 ++++-------------- setup.py | 2 +- 4 files changed, 7 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index e597c5f..136b57a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /.tox /.pytest_cache /.python-version +/.idea/ /benchmark*.svg /build /dist diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 429da65..2e96e6f 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -20,3 +20,4 @@ This file lists the contributors to the `django_dramatiq` project. | [@OrazioPirataDelloSpazio](https://github.com/OrazioPirataDelloSpazio) | Lorenzo | | [@timdrijvers](https://github.com/timdrijvers) | Tim Drijvers | | [@magraeber](https://github.com/magraeber) | magraeber | +| [@ikvk](https://github.com/ikvk) | Vladimir Kaukin | diff --git a/django_dramatiq/admin.py b/django_dramatiq/admin.py index 8af4359..9083320 100644 --- a/django_dramatiq/admin.py +++ b/django_dramatiq/admin.py @@ -12,24 +12,14 @@ @admin.register(Task) class TaskAdmin(admin.ModelAdmin): exclude = ("message_data",) - readonly_fields = ("message_details", "traceback", "status", "queue_name", "actor_name") - list_display = ( - "__str__", - "status", - "eta", - "created_at", - "updated_at", - "queue_name", - "actor_name", - ) + readonly_fields = ("message_details", "traceback", "status", "queue_name", "actor_name", "created_at", "updated_at") + list_display = ("__str__", "status", "eta", "created_at", "updated_at", "queue_name", "actor_name") list_filter = ("status", "created_at", "queue_name", "actor_name") search_fields = ("actor_name",) def eta(self, instance): - timestamp = ( - instance.message.options.get("eta", instance.message.message_timestamp) / 1000 - ) - + """Estimated time of arrival""" + timestamp = (instance.message.options.get("eta", instance.message.message_timestamp) / 1000) # Django expects a timezone-aware datetime if USE_TZ is True, and a naive datetime in localtime otherwise. tz = timezone.utc if settings.USE_TZ else None return datetime.fromtimestamp(timestamp, tz=tz) diff --git a/setup.py b/setup.py index f0898c8..25ff47e 100644 --- a/setup.py +++ b/setup.py @@ -19,7 +19,7 @@ def rel(*xs): setup( - name="django_dramatiq", + name="django-dramatiq", version=version, description="A Django app for Dramatiq.", long_description="Visit https://github.com/Bogdanp/django_dramatiq for more information.", From 8831f1d880cf20c12a154c1df9ba7ffad5c06e08 Mon Sep 17 00:00:00 2001 From: "v.kaukin" Date: Mon, 6 Feb 2023 13:20:59 +0500 Subject: [PATCH 2/7] TaskAdmin +readonly_fields "created_at", "updated_at"; fix setup name; Task.__str__ try --- django_dramatiq/models.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/django_dramatiq/models.py b/django_dramatiq/models.py index 5a2f19b..504f23c 100644 --- a/django_dramatiq/models.py +++ b/django_dramatiq/models.py @@ -63,4 +63,9 @@ def message(self): return Message.decode(bytes(self.message_data)) def __str__(self): - return str(self.message) + try: + return str(self.message) + except Exception as e: + # U6 + return f'Failed to display Task: {e}' + From d402b4de646ab03676dcf02260142ed2aa1d7dc1 Mon Sep 17 00:00:00 2001 From: "v.kaukin" Date: Mon, 6 Feb 2023 13:36:18 +0500 Subject: [PATCH 3/7] TaskAdmin +readonly_fields "created_at", "updated_at"; fix setup name; Task.__str__ try --- django_dramatiq/models.py | 1 - 1 file changed, 1 deletion(-) diff --git a/django_dramatiq/models.py b/django_dramatiq/models.py index 504f23c..dcc934a 100644 --- a/django_dramatiq/models.py +++ b/django_dramatiq/models.py @@ -66,6 +66,5 @@ def __str__(self): try: return str(self.message) except Exception as e: - # U6 return f'Failed to display Task: {e}' From 0e7a745ee161aee2c50880915a764fc68bea6663 Mon Sep 17 00:00:00 2001 From: "v.kaukin" Date: Fri, 26 Apr 2024 14:59:43 +0500 Subject: [PATCH 4/7] del /.idea/ --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 136b57a..e597c5f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ /.tox /.pytest_cache /.python-version -/.idea/ /benchmark*.svg /build /dist From 01fb7835a8bddd72c7db3cd05734a963b75996a1 Mon Sep 17 00:00:00 2001 From: "v.kaukin" Date: Fri, 26 Apr 2024 17:17:11 +0500 Subject: [PATCH 5/7] flake --- django_dramatiq/models.py | 1 - 1 file changed, 1 deletion(-) diff --git a/django_dramatiq/models.py b/django_dramatiq/models.py index dcc934a..7e5b32b 100644 --- a/django_dramatiq/models.py +++ b/django_dramatiq/models.py @@ -67,4 +67,3 @@ def __str__(self): return str(self.message) except Exception as e: return f'Failed to display Task: {e}' - From 69c482bc06361ab9c89f8cbfa6cf2f3b0424c25d Mon Sep 17 00:00:00 2001 From: "v.kaukin" Date: Sat, 27 Apr 2024 09:01:23 +0500 Subject: [PATCH 6/7] logging to idiomatic usage; add logger.exception - Failed to display Task; logger var lo lower case --- django_dramatiq/middleware.py | 8 ++++---- django_dramatiq/models.py | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/django_dramatiq/middleware.py b/django_dramatiq/middleware.py index 833cc7f..ff48450 100644 --- a/django_dramatiq/middleware.py +++ b/django_dramatiq/middleware.py @@ -3,7 +3,7 @@ from django import db from dramatiq.middleware import Middleware -LOGGER = logging.getLogger("django_dramatiq.AdminMiddleware") +logger = logging.getLogger(__name__) class AdminMiddleware(Middleware): @@ -13,7 +13,7 @@ class AdminMiddleware(Middleware): def after_enqueue(self, broker, message, delay): from .models import Task - LOGGER.debug("Creating Task from message %r.", message.message_id) + logger.debug("Creating Task from message %r.", message.message_id) status = Task.STATUS_ENQUEUED if delay: status = Task.STATUS_DELAYED @@ -28,7 +28,7 @@ def after_enqueue(self, broker, message, delay): def before_process_message(self, broker, message): from .models import Task - LOGGER.debug("Updating Task from message %r.", message.message_id) + logger.debug("Updating Task from message %r.", message.message_id) Task.tasks.create_or_update_from_message( message, status=Task.STATUS_RUNNING, @@ -49,7 +49,7 @@ def after_process_message(self, broker, message, *, result=None, exception=None, elif status is None: status = Task.STATUS_DONE - LOGGER.debug("Updating Task from message %r.", message.message_id) + logger.debug("Updating Task from message %r.", message.message_id) Task.tasks.create_or_update_from_message( message, status=status, diff --git a/django_dramatiq/models.py b/django_dramatiq/models.py index 7e5b32b..fe7ca1d 100644 --- a/django_dramatiq/models.py +++ b/django_dramatiq/models.py @@ -1,3 +1,4 @@ +import logging from datetime import timedelta from django.db import models @@ -10,6 +11,8 @@ #: The database label to use when storing task metadata. DATABASE_LABEL = DjangoDramatiqConfig.tasks_database() +logger = logging.getLogger(__name__) + class TaskManager(models.Manager): def create_or_update_from_message(self, message, **extra_fields): @@ -66,4 +69,5 @@ def __str__(self): try: return str(self.message) except Exception as e: + logger.exception(f'Failed to display Task {self.id}') return f'Failed to display Task: {e}' From e56726ce6afc086473c9add6da4195296f8728aa Mon Sep 17 00:00:00 2001 From: Vladimir Kaukin Date: Sat, 28 Dec 2024 10:18:05 +0500 Subject: [PATCH 7/7] Update django_dramatiq/admin.py Co-authored-by: Andrew Graham-Yooll --- django_dramatiq/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_dramatiq/admin.py b/django_dramatiq/admin.py index 9083320..b3666d1 100644 --- a/django_dramatiq/admin.py +++ b/django_dramatiq/admin.py @@ -13,7 +13,7 @@ class TaskAdmin(admin.ModelAdmin): exclude = ("message_data",) readonly_fields = ("message_details", "traceback", "status", "queue_name", "actor_name", "created_at", "updated_at") - list_display = ("__str__", "status", "eta", "created_at", "updated_at", "queue_name", "actor_name") + list_display = ("__str__", "status", "eta", "created_at", "updated_at", "queue_name", "actor_name",) list_filter = ("status", "created_at", "queue_name", "actor_name") search_fields = ("actor_name",)