0

rq スケジューラを使用しています。2 分後と 10 分後にメールを確認するようユーザーに通知したいと思います。そのため、post_save シグナルを使用してこれらのタスクをスケジュールします。次のようなタスクを設定しました。

from datetime import timedelta
import django_rq
def send_verification_email(user):
"""Remind signed up user to verify email."""
   
    if not user.is_email_verified:
        context = get_email_context(user)
        context['first_name'] = user.first_name
        context['url'] = django_settings.ACTIVATION_URL.format(**context)
        # below line sends email
        VerifyEmailReminderNotification(user.email, context=context).send()

@receiver(post_save)
def remind_to_verify_email(sender, created, instance, **kwargs):
    """Send verify email for the new user."""
    list_of_models = ('Person', 'Company')
    scheduler = django_rq.get_scheduler("default")
    if sender.__name__ in list_of_models:
        if created:
            scheduler.enqueue_in(timedelta(minutes=2), send_verification_email, instance)
            # if I move below enqueue to "send_verification_email" method it will go to recursion.
            scheduler.enqueue_in(timedelta(minutes=10), send_verification_email, instance)

問題: 2 分後に 1 通のメールが届きますが、10 分経っても 2 通目のメールは届きません。どんな助けでも感謝します。

4

1 に答える 1

1

デルタ 2 分で最初のタスクを実行し、それが実行されると、デルタ 8 分で別のタスクを実行する必要があります。それが役立つことを願っています。

于 2016-08-22T09:03:28.827 に答える