Skip to content

Commit 4b4f5a9

Browse files
committed
update send email to async
1 parent 2fe6014 commit 4b4f5a9

File tree

6 files changed

+30
-5
lines changed

6 files changed

+30
-5
lines changed

src/main/java/com/cronos/onlinereview/actions/latedeliverables/SaveLateDeliverableAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ private void sendEmailForUsers(Project project, List<String> recipients, List<St
353353
message.addToAddress(ccRecipient, TCSEmailMessage.CC);
354354
}
355355
message.setContentType("text/html");
356-
EmailEngine.send(message);
356+
ActionsHelper.sendEmail(message);
357357
}
358358

359359
/**

src/main/java/com/cronos/onlinereview/actions/projectdetails/BaseProjectDetailsAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -846,7 +846,7 @@ private void notifyIterativeReviewers(Project project, long submissionId, String
846846
message.addToAddress(recipient, TCSEmailMessage.TO);
847847
}
848848
message.setContentType("text/html");
849-
EmailEngine.send(message);
849+
ActionsHelper.sendEmail(message);
850850
}
851851

852852
/**

src/main/java/com/cronos/onlinereview/actions/projectdetails/ContactManagerAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public String execute() throws BaseException, ConfigManagerException {
187187
message.setContentType("text/html");
188188

189189
// Send an email
190-
EmailEngine.send(message);
190+
ActionsHelper.sendEmail(message);
191191
setPid(project.getId());
192192

193193
return Constants.SUCCESS_FORWARD_NAME;

src/main/java/com/cronos/onlinereview/phases/ReviewResultNotification.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.text.MessageFormat;
77

88
import com.cronos.onlinereview.external.ExternalUser;
9+
import com.cronos.onlinereview.util.ActionsHelper;
910
import com.topcoder.management.deliverable.Submission;
1011
import com.topcoder.management.deliverable.UploadManager;
1112
import com.topcoder.management.phase.PhaseHandlingException;
@@ -109,7 +110,7 @@ private void sendWinnersEmailForUser(Project project, ExternalUser user, String
109110
message.setBody(emailContent);
110111
message.setFromAddress(winnersEmailFromAddress);
111112
message.setToAddress(user.getEmail(), TCSEmailMessage.TO);
112-
EmailEngine.send(message);
113+
ActionsHelper.sendEmail(message);
113114
}
114115

115116
private Resource getResourceForProjectAndUser(Project project, Long userId) throws PhaseManagementException {

src/main/java/com/cronos/onlinereview/phases/ScreeningResultNotification.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import com.cronos.onlinereview.external.ExternalUser;
1212
import com.cronos.onlinereview.external.UserRetrieval;
13+
import com.cronos.onlinereview.util.ActionsHelper;
1314
import com.topcoder.management.deliverable.Submission;
1415
import com.topcoder.management.deliverable.SubmissionStatus;
1516
import com.topcoder.management.deliverable.SubmissionType;
@@ -220,7 +221,7 @@ private void sendEmailForUser(Project project, ExternalUser user, Submission sub
220221
message.setFromAddress(emailFromAddress);
221222
message.setToAddress(user.getEmail(), TCSEmailMessage.TO);
222223
message.setContentType("text/html");
223-
EmailEngine.send(message);
224+
ActionsHelper.sendEmail(message);
224225
}
225226

226227
/**

src/main/java/com/cronos/onlinereview/util/ActionsHelper.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import java.util.List;
3030
import java.util.Map;
3131
import java.util.Set;
32+
import java.util.concurrent.ExecutorService;
33+
import java.util.concurrent.Executors;
3234

3335
import com.amazonaws.auth.PropertiesCredentials;
3436
import com.amazonaws.services.s3.AmazonS3Client;
@@ -104,6 +106,9 @@
104106
import com.topcoder.management.scorecard.data.Group;
105107
import com.topcoder.management.scorecard.data.Scorecard;
106108
import com.topcoder.management.scorecard.data.Section;
109+
import com.topcoder.message.email.EmailEngine;
110+
import com.topcoder.message.email.SendingException;
111+
import com.topcoder.message.email.TCSEmailMessage;
107112
import com.topcoder.project.phases.Dependency;
108113
import com.topcoder.project.phases.Phase;
109114
import com.topcoder.project.phases.PhaseStatus;
@@ -123,6 +128,7 @@
123128
import com.topcoder.servlet.request.LocalFileUpload;
124129
import com.topcoder.shared.util.ApplicationServer;
125130
import com.topcoder.shared.util.TCContext;
131+
import com.topcoder.util.config.ConfigManagerException;
126132
import com.topcoder.util.errorhandling.BaseException;
127133
import com.topcoder.util.errorhandling.BaseRuntimeException;
128134
import com.topcoder.util.log.Level;
@@ -222,6 +228,8 @@ public class ActionsHelper {
222228
*/
223229
public static final String LOCAL_STUDIO_STORAGE_NAMESPACE = "com.topcoder.servlet.request.LocalStudioFileUpload";
224230

231+
private static final ExecutorService THREAD_POOL = Executors.newFixedThreadPool(50);
232+
225233
/**
226234
* AWS S3 client
227235
*/
@@ -3878,4 +3886,19 @@ public static String createStudioLocalFilePath(long projectId, long userId, Stri
38783886
buf.append(parameter);
38793887
return buf.toString();
38803888
}
3889+
3890+
public static void sendEmail(final TCSEmailMessage message) {
3891+
THREAD_POOL.execute(new Runnable() {
3892+
@Override
3893+
public void run() {
3894+
try {
3895+
EmailEngine.send(message);
3896+
} catch (ConfigManagerException e) {
3897+
log.log(Level.ERROR, "Send email with config error: " + e.getMessage());
3898+
} catch (SendingException e) {
3899+
log.log(Level.ERROR, "Send email with sending error: " + e.getMessage());
3900+
}
3901+
}
3902+
});
3903+
}
38813904
}

0 commit comments

Comments
 (0)