Coverage for website/pushnotifications/tasks.py: 0.00%
18 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1import logging
2from datetime import timedelta
4from django.utils import timezone
6from celery import shared_task
8from pushnotifications.models import ScheduledMessage
10logger = logging.getLogger(__name__)
13@shared_task
14def send_scheduled_messages(interval_time):
15 """Send a scheduled push notifications."""
16 interval = int(interval_time)
17 now = timezone.now()
19 logger.info("Start sending scheduled notifications")
21 before_time = timezone.now() + timedelta(seconds=interval / 2)
22 messages = ScheduledMessage.objects.filter(sent__isnull=True, time__lte=before_time)
24 for message in messages:
25 if (timezone.now() - now).seconds < interval:
26 logger.info("Sending push notification %d", message.pk)
27 message.executed = timezone.now()
28 message.send()