Files
zulip/zephyr/management/commands/send_confirmation_emails.py
Jessica McKellar 7175dc534a Send invitation e-mails asynchronously through RabbitMQ.
This avoids 10s of seconds of delay when you invite several people at
once through the web UI.

(imported from commit 75acdbdb04caf62bbb08affc7796330246d8a00e)
2013-04-10 16:57:49 -04:00

22 lines
787 B
Python

from django.core.management.base import BaseCommand
from zephyr.models import get_user_profile_by_email, get_prereg_user_by_email
from zephyr.lib.queue import SimpleQueueClient
from zephyr.lib.actions import do_send_confirmation_email
class Command(BaseCommand):
"""
Send confirmation e-mails to invited users.
This command processes events from the `invites` queue.
"""
def subscribe(self, ch, method, properties, data):
invitee = get_prereg_user_by_email(data["email"])
referrer = get_user_profile_by_email(data["referrer_email"])
do_send_confirmation_email(invitee, referrer)
def handle(self, *args, **options):
q = SimpleQueueClient()
q.register_json_consumer("invites", self.subscribe)
q.start_consuming()