@ -1,3 +1,4 @@
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from enum import StrEnum, auto
|
||||
from uuid import uuid4
|
||||
import pgtrigger
|
||||
@ -11,6 +12,35 @@ from authentik.tenants.models import Tenant
|
||||
CHANNEL_PREFIX = "authentik.tasks"
|
||||
|
||||
|
||||
# class Schedule(SerializerModel):
|
||||
# id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
|
||||
#
|
||||
# name = models.TextField(editable=False)
|
||||
# func = models.TextField(editable=False)
|
||||
# args = models.TextField(editable=False)
|
||||
# kwargs = models.TextField(editable=False)
|
||||
#
|
||||
# class Meta:
|
||||
# verbose_name = _("Schedule")
|
||||
# verbose_name_plural = _("Schedules")
|
||||
# indexes = (
|
||||
# models.Index(
|
||||
# fields=(
|
||||
# "name",
|
||||
# "func",
|
||||
# ),
|
||||
# ),
|
||||
# )
|
||||
#
|
||||
# def __str__(self):
|
||||
# return self.name
|
||||
#
|
||||
# @property
|
||||
# def serializer(self):
|
||||
# # TODO: fixme
|
||||
# pass
|
||||
|
||||
|
||||
class ChannelIdentifier(StrEnum):
|
||||
ENQUEUE = auto()
|
||||
LOCK = auto()
|
||||
@ -39,6 +69,8 @@ class Task(SerializerModel):
|
||||
messages = models.JSONField(blank=True, null=True, editable=False)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Task")
|
||||
verbose_name_plural = _("Tasks")
|
||||
indexes = (models.Index(fields=("state", "mtime")),)
|
||||
triggers = (
|
||||
pgtrigger.Trigger(
|
||||
|
||||
18
authentik/tasks/tests.py
Normal file
18
authentik/tasks/tests.py
Normal file
@ -0,0 +1,18 @@
|
||||
from dramatiq import Worker, get_broker
|
||||
from django.test import TransactionTestCase
|
||||
|
||||
|
||||
class TaskTestCase(TransactionTestCase):
|
||||
def _pre_setup(self):
|
||||
super()._pre_setup()
|
||||
|
||||
self.broker = get_broker()
|
||||
self.broker.flush_all()
|
||||
|
||||
self.worker = Worker(self.broker, worker_timeout=100)
|
||||
self.worker.start()
|
||||
|
||||
def _post_teardown(self):
|
||||
self.worker.stop()
|
||||
|
||||
super()._post_teardown()
|
||||
Reference in New Issue
Block a user