我想安排在某个选定日期发送电子邮件我怎样才能在 DRF 中做到这一点?

问题描述

我想将接收者的电子邮件地址和计划日期作为输入,然后将邮件发送到计划日期。我在 views.py 中有以下几行代码 实际上,我期待在 django 中使用 apscheduler 包进行异步后台任务,但任何建议和解决方案都是值得赞赏的

class SendMailView(APIView):

    def post(self,request,*args,**kwargs):

    '''
    POST Method for sending Email
    '''     
       send_to = request.data.get('receiver_email') 
       schedule_for = request.data.get('schedule_date')

       email_plaintext_message = " Hello"
       send_mail(
                # title:
                "Test mail,# message:
                email_plaintext_message,# from:
                 'some@gmail.com,# to:
                [send_to]

            )


       return Response({"status":"Email Send"},status=status.HTTP_200_OK)
        

解决方法

考虑使用 Celery。 您需要做的就是按照安装、启动工作程序和节拍,您可以安排任务。

task.py

from celery import shared_task

@shared_task
def sendScheduledEmail(email_to):
   #do your stuff

并且在您的 API POST 上安排:

sendScheduledEmail.apply_async([email_to],eta=datetime.datetime(2021,07,06,09,30))

我没有测试这个,所以如果你有任何错误,请告诉我

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...