首页 > 解决方案 > 有什么方法可以传递 args 值来传递 django celery 定期任务?

问题描述

我得到了某些要执行的以下任务

from apps.users.email import ConfirmationEmail

@shared_task
def send_email(receipt, **kwargs):
    return ConfirmationEmail(context=kwargs).send(to=[receipt])

并在下面的函数中调用发送电子邮件。我在定期任务中传递 args 时遇到问题,因为我找不到任何关于此的文档

def _email(self):
    token = RefreshToken.for_user(user=self.user_instance).access_token
    # get current site
    current_site = get_current_site(self._request).domain
    # we are calling verify by email view  here whose name path is activate-by-email
    relative_link = reverse('activate-by-email')
    # make whole url
    absolute_url = 'http://' + current_site + relative_link + "?token=" + str(token)
    self.context = {
        'user': self._user.username,
        'token': absolute_url
    }
    receipent = self._user.email
    send_email.delay(receipent, **self.context)

上面的代码适用于 redis,但我想每 2 分钟发送一次电子邮件,但我在传递周期性任务作业时传递 args 感到困惑。方法是错误的还是我遗漏了什么?

标签: pythondjangocelery

解决方案


推荐阅读