java如何同时给多个人发送短信和邮件和微信,发生错误互不影响,并且将报错记入日志。

解决方案 »

  1.   

    数量不大,粗暴的方法,就是循环里面try ,让每个发送操作失败都不会中断程序,互不干扰,但java中循环里面try非常影响性能还可以使用多线程,这样每个操作就互不干扰了,将发送操作try起来,catch中进行日志输出操作
      

  2.   


    for (int i = 0; i < userIds.length(); i++) {     //邮件线程
        //短信线程
    }这样吗?
      

  3.   

    可以详细说一下嘛  我是会接收到一个用户列表,然后有些人有邮件 有些人有短信 有些既有邮件又有短信。
    然后给每个人发送邮件和短信 只要他有。
    userMessageList
    userEmailList.
    两个循环 怎么操作呢
      

  4.   

    如果是要使用多线程,记录日志可以使用FutureTask,很简单的循环,IEmailService是你的邮件服务接口,只是send方法写成多线程的userMessageList.foreach(u->IEmailService.send(u));
    IEmailService多线程发消息 public void send(User user) {    Future<String> futureTaskState = taskExecutor.submit(new Callable<String>() {
    @Override
    public String call() throws Exception {

    // 你的发送信息逻辑


    return "ok";
    }
    });               log.info("task  log : "+futureTaskState .get())
    }