From 8ca2388c45b98e0f2d6b6f01ed4a9237fdf83e7a Mon Sep 17 00:00:00 2001 From: Klaas van Schelven Date: Tue, 23 Apr 2024 15:27:57 +0200 Subject: [PATCH] Factor out wakeup_server --- snappea/decorators.py | 15 +++------------ snappea/models.py | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/snappea/decorators.py b/snappea/decorators.py index e800ab0..bec6fd4 100644 --- a/snappea/decorators.py +++ b/snappea/decorators.py @@ -1,9 +1,8 @@ -import os import json -from . import registry, thread_uuid +from . import registry -from .models import Task +from .models import Task, wakeup_server from .settings import get_settings @@ -22,15 +21,7 @@ def shared_task(function): # No need for a transaction: we just write something (not connected to any other object, and we will never touch # it again). Task.objects.create(task_name=name, args=json.dumps(args), kwargs=json.dumps(kwargs)) - - wakeup_file = os.path.join(get_settings().WAKEUP_CALLS_DIR, thread_uuid) - - if not os.path.exists(get_settings().WAKEUP_CALLS_DIR): - os.mkdir(get_settings().WAKEUP_CALLS_DIR, exist_ok=True) - - if not os.path.exists(wakeup_file): - with open(wakeup_file, "w"): - pass + wakeup_server() name = function.__module__ + "." + function.__name__ function.delay = delayed_function diff --git a/snappea/models.py b/snappea/models.py index 1d040e4..ae336af 100644 --- a/snappea/models.py +++ b/snappea/models.py @@ -1,5 +1,10 @@ +import os + from django.db import models +from .settings import get_settings +from . import thread_uuid + class Task(models.Model): task_name = models.CharField(max_length=255) @@ -8,3 +13,14 @@ class Task(models.Model): def __str__(self): return self.task_name + + +def wakeup_server(): + wakeup_file = os.path.join(get_settings().WAKEUP_CALLS_DIR, thread_uuid) + + if not os.path.exists(get_settings().WAKEUP_CALLS_DIR): + os.mkdir(get_settings().WAKEUP_CALLS_DIR, exist_ok=True) + + if not os.path.exists(wakeup_file): + with open(wakeup_file, "w"): + pass