在Java中的不同线程中运行后台进程
发布时间:2020-12-14 05:20:35 所属栏目:Java 来源:网络整理
导读:我正在编写一个应用程序,用户可以添加和删除其他用户作为朋友. 我的页面有一个不同的用户列表,每个用户都有一个按钮,将它们添加到朋友列表中. 我发送一个 AJAX请求给 Java servlet,将所选用户添加为朋友. 我在UI上显示警告信息以显示进程的结果. 我的问题是,
我正在编写一个应用程序,用户可以添加和删除其他用户作为朋友.
我的页面有一个不同的用户列表,每个用户都有一个按钮,将它们添加到朋友列表中. 我发送一个 AJAX请求给 Java servlet,将所选用户添加为朋友. 我在UI上显示警告信息以显示进程的结果. 我的问题是,当用户被添加为朋友时,我必须发送一个邮件,该代码使用相同的方法写在servlet中. 因为这段代码,我的警报消息很晚. 我需要运行一个单独的pthread来运行这个发送邮件功能,以便一旦添加了用户,我将得到结果,邮件将被单独发送. 我在Servlet中的代码是 private void sendMail(long inviteeID) { User inviteeUser = null; try { inviteeUser = userHandler.getUser(inviteeID); } catch (DataException e) { sLog.error("User does not exist.",e); } catch (UserNotFoundException e) { sLog.error("User does not exist.",e); } MailUtility.send(inviteeUser.getUserEmailAddress().trim(),"vagarwal@q3tech.com","add friend message",Utility .getAddFriendMessageBody(LoginHelper .getLoggedInUserEmail()),false); } private String inviteAsFriend(long inviteeID) { boolean result = false; if (LoginHelper.isUserLoggedIn()) { try { User user = userHandler.findUserByEmail(LoginHelper .getLoggedInUserEmail()); if (userHandler.isUserFriend(user.getUserId(),inviteeID)) { if (userHandler.addFriend(user,inviteeID)) { result = true; return "Member added successfully as your friend."; } else { return "Member could not be added as your friend. Please try again later."; } } else { return "Member is already your friend."; } } catch (DataException e) { return "User does not exist."; } catch (UserNotFoundException e) { return "User does not exist."; } catch (Exception e) { return "Member could not be added as your friend. Please try again later."; } finally { if (result) { sendMail(inviteeID); } } } else { return "User not logged in."; } } 解决方法
我不知道这是什么问题.发送电子邮件不是那么昂贵的操作 – 它只是通知SMTP服务器邮件应该被发送,并且SMTP服务器从那里照顾.
不过,您可以尝试: new Thread(new Runnable() { public void run() { MailUtility.send(inviteeUser.getUserEmailAddress().trim(),false); } }).start(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |