mirror of
https://github.com/barkeser2002/offline-db.git
synced 2026-09-25 02:19:59 +03:00
- Created asynchronous tasks `calculate_badges_task`, `calculate_chat_badges_task`, and `reevaluate_all_badges_task` in `users/tasks.py`. - Updated `users/signals.py` to invoke Celery tasks asynchronously via `.delay()` rather than running synchronous functions. - Added `flower` for monitoring in `requirements.txt`. - Configured Celery Result Backend to use Redis instead of `django-db` in `aniscrap_core/settings.py`. - Scheduled `reevaluate_all_badges_task` to run daily via Celery Beat in `aniscrap_core/celery.py`. - Updated `.jules/development-plan.md` to reflect completed Celery optimizations. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
from django.db.models.signals import post_save
|
|
from django.dispatch import receiver
|
|
from .models import WatchLog
|
|
from content.models import Subscription, Review, VideoFile
|
|
from apps.watchparty.models import Room, Message
|
|
from .tasks import calculate_badges_task, calculate_chat_badges_task
|
|
|
|
@receiver(post_save, sender=VideoFile)
|
|
def check_badges_on_video_upload(sender, instance, created, **kwargs):
|
|
if created and instance.uploader:
|
|
calculate_badges_task.delay(instance.uploader.id)
|
|
|
|
@receiver(post_save, sender=Review)
|
|
def check_badges_on_review(sender, instance, created, **kwargs):
|
|
if created:
|
|
calculate_badges_task.delay(instance.user.id)
|
|
|
|
@receiver(post_save, sender=Subscription)
|
|
def check_badges_on_subscribe(sender, instance, created, **kwargs):
|
|
if created:
|
|
calculate_badges_task.delay(instance.user.id)
|
|
|
|
@receiver(post_save, sender=WatchLog)
|
|
def check_badges_on_watch(sender, instance, created, **kwargs):
|
|
if created:
|
|
calculate_badges_task.delay(instance.user.id)
|
|
|
|
@receiver(post_save, sender=Message)
|
|
def check_badges_on_chat(sender, instance, created, **kwargs):
|
|
if created and instance.sender:
|
|
calculate_chat_badges_task.delay(instance.sender.id)
|
|
|
|
@receiver(post_save, sender=Room)
|
|
def check_badges_on_watch_party(sender, instance, created, **kwargs):
|
|
if created:
|
|
calculate_badges_task.delay(instance.host.id)
|