У меня довольно стандартная форма GWT, которая выполняет самую основную функцию захвата данных из регистрационной формы и хранения ее в базе данных.Как выполнить многопоточность в GWT?
authenticationService.registerStudent(email, password, firstName, lastName, contact,
country, countryCode, school, lecturerFirstName, lecturerLastName,
lecturerEmail, language, new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable throwable) {
}
@Override
public void onSuccess(Boolean bool) {
}
});
На стороне сервера у меня есть сервлет, который хранит данные в базе данных.
public class AuthenticationServiceImpl extends RemoteServiceServlet implements AuthenticationService {
@Override
public Boolean registerStudent(String email, String password, String firstName, String lastName,
String contact, String country, String countryCode, String school,
String lecturerFirstName, String lecturerLastName, String lecturerEmail,
String language) throws IllegalArgumentException {
....
}
}
Я хочу отправить отправить электронное письмо с подтверждением, чтобы подтвердить его. Проблема с внедрением логики электронной почты в функции registerStudent()
заключается в том, что может потребоваться некоторое время для связи с SMTP-сервером, что вызовет неуверенность на стороне клиента.
Как «делегировать» функцию отправки электронной почты другому классу/функции при возможности вернуть true
из функции registerStudent()
при успешной вставке в базу данных? Я предполагаю, что какая-то форма многопоточности понадобится, но я не уверен, как это сделать.
Я согласен с ответом sanbhat в. Напротив, специально для этого вопроса о отправке регистрационного письма я бы сказал, что отправка электронной почты синхронно (то есть: блокировка клиента и ожидание отправки электронной почты) не такая уж плохая альтернатива, потому что тогда вы мог бы предоставить отзыв клиенту в случае, если что-то пошло не так с отправкой электронной почты, например, «перегруженный сервис, повторите попытку позже» .... –