gpt4 book ai didi

java - 在Java中的不同线程中运行后台进程

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:04:08 25 4
gpt4 key购买 nike

我正在编写一个应用程序,用户可以在其中添加和删除其他用户的好友。我的页面有一个不同用户的列表,每个用户都有一个按钮可以将他们添加到 friend 列表中。我正在向 Java servlet 发送 AJAX 请求以将所选用户添加为好友。我在 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(),
"vagarwal@q3tech.com", "add friend message", Utility
.getAddFriendMessageBody(LoginHelper
.getLoggedInUserEmail()), false);
}
}).start();

关于java - 在Java中的不同线程中运行后台进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2100212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com