zoukankan      html  css  js  c++  java
  • 异步线程:一次性发送大量邮件

    1.邮件发送接口(伪代码):

          public void toSendMsg(HttpServletRequest request, HttpServletResponse response) {
                //1.校验是否为非法请求
                //xxx
                //2.接收参数
                  String emails = request.getParameter("emails");//多封邮件(可接收分隔符拼接的emails,也可以选择接受email数组)
                  String emailContent = request.getParameter("emailContent");//邮件的固定格式内容
                 // ...
                    try {                    
                            new  SendEmailThread(email,emailContent).start(); //实例化发送邮件的线程。此处可以用局部内部类或者java8的lambda代替第二步,不过上面的局部变量要用final修饰                                          
                            //操作间隔时间限制
                            //xxx                                    
                    } catch (Exception e) 
                        e.printStackTrace();
                    } finally {
                        //xxx
                    }
                }

    2.构建线程对象

        class SendEmailThread extends Thread{    
                    private String emails;
                    private String emailContent;
                    SendEmailThread(String emails,String emailContent){
                        this.emails=emails;
                        this.emailContent=emailContent;
                    }
                    public void run(){
                            try {
                                sendEmail(emails,emailContent);//将参数传入负责执行发送逻辑的方法
                            }catch (Exception e) {
                                e.printStackTrace();
                            }
                    }
                }

    3.发送逻辑方法sendEmail

    //此处根据自己的业务逻辑自行设计,可将邮件及其内容写入redis队列,或者有MQ软件环境的写入MQ,再用定时任务进行发送。发送之后将发送结果写入数据库或者logger记录,方便查询发送是否成功。具体实现待发布
  • 相关阅读:
    python基础----装饰器
    python基础----函数的定义和调用、return语句、变量作用域、传参、函数嵌套、函数对象、闭包、递归函数
    python基础----文件处理
    python基础
    django时间的时区问题
    django-admin详细设置
    Django框架-模板系统
    Django框架--路由分配系统
    jQuery教程
    django博客项目11
  • 原文地址:https://www.cnblogs.com/lhc-hhh/p/13177015.html
Copyright © 2011-2022 走看看