import channels.layers from asgiref.sync import async_to_sync from datetime import timedelta from django.core.management.base import BaseCommand from django.utils import timezone from university.models import UserOnlineExamMessage class Command(BaseCommand): def handle(self, *args, **options): channel_layer = channels.layers.get_channel_layer() last_one_minute = timezone.now() - timedelta(minutes=1) for event_message in UserOnlineExamMessage.objects.filter( ack=False, created_at__lte=last_one_minute): content = event_message.content content['sequence_id'] = event_message.id group_name = 'online_exam-{}-{}'.format( event_message.user.id, event_message.online_exam.id) async_to_sync(channel_layer.group_send)(group_name, content) event_message.save()