init
This commit is contained in:
0
backend/booking/management/__init__.py
Normal file
0
backend/booking/management/__init__.py
Normal file
0
backend/booking/management/commands/__init__.py
Normal file
0
backend/booking/management/commands/__init__.py
Normal file
55
backend/booking/management/commands/seed_celery_beat.py
Normal file
55
backend/booking/management/commands/seed_celery_beat.py
Normal file
@@ -0,0 +1,55 @@
|
||||
# yourapp/management/commands/seed_celery_beat.py
|
||||
import json
|
||||
from django.utils import timezone
|
||||
from django.core.management.base import BaseCommand
|
||||
from django_celery_beat.models import PeriodicTask, IntervalSchedule, CrontabSchedule
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Seeds the database with predefined Celery Beat tasks."
|
||||
|
||||
def handle(self, *args, **kwargs):
|
||||
# # Example 1 — Run every 10 minutes
|
||||
# schedule, _ = IntervalSchedule.objects.get_or_create(
|
||||
# every=10,
|
||||
# period=IntervalSchedule.MINUTES,
|
||||
# )
|
||||
|
||||
# Example 2 — Run each 5 minutes
|
||||
crontab_delete_unpayed, _ = CrontabSchedule.objects.get_or_create(
|
||||
minute='*/5',
|
||||
hour='*',
|
||||
day_of_week='*',
|
||||
day_of_month='*',
|
||||
month_of_year='*',
|
||||
timezone=timezone.get_current_timezone_name(),
|
||||
)
|
||||
|
||||
PeriodicTask.objects.get_or_create(
|
||||
name='Zrušení nezaplacených rezervací',
|
||||
task='booking.tasks.cancel_unpayed_reservations_task',
|
||||
crontab=crontab_delete_unpayed,
|
||||
args=json.dumps([]), # Optional arguments
|
||||
kwargs=json.dumps({"minutes": 30}),
|
||||
description="Maže Rezervace podle Objednávky, pokud ta nebyla zaplacena v době 30 minut. Tím se uvolní Prodejní Místa pro nové rezervace.\nJako vstupní argument může být zadán počet minut, podle kterého nezaplacená rezervaace bude stornovana."
|
||||
)
|
||||
|
||||
|
||||
crontab_delete_soft, _ = CrontabSchedule.objects.get_or_create(
|
||||
minute='0',
|
||||
hour='1',
|
||||
day_of_week='*',
|
||||
day_of_month='1',
|
||||
month_of_year='*',
|
||||
timezone=timezone.get_current_timezone_name(),
|
||||
)
|
||||
|
||||
PeriodicTask.objects.get_or_create(
|
||||
name='Skartace soft-smazaných záznamů',
|
||||
task='booking.tasks.hard_delete_soft_deleted_records_task',
|
||||
crontab=crontab_delete_soft,
|
||||
args=json.dumps([]), # Optional arguments
|
||||
kwargs=json.dumps({"years": 10, "days": 0}), # Optional kwargs
|
||||
description="Mazání všech záznamů označených jako smazané v databázi.\nJako vstupní argument lze zadat počet let nebo dnů, podle kterého se určí, jak staré záznamy budou trvale odstraněny."
|
||||
)
|
||||
|
||||
self.stdout.write(self.style.SUCCESS("✅ Celery Beat tasks have been seeded."))
|
||||
Reference in New Issue
Block a user