Я работаю над приложением типа управления задачами. Поэтому, когда кто-то завершает задачу, создатель задачи отправляет сообщение с URL-адресом задачи. Я использую Spring MVC для создания этого приложения. Таким образом, теперь проблема заключается в том, что две задачи создаются почти в одно и то же время, для электронной почты для первой задачи я получаю URL-адрес, сгенерированный для второй задачи.лучший способ синхронизации метода
Я написал следующий метод для выполнения этой функциональности
@RequestMapping(value = "commentTask", method = RequestMethod.POST)
@ResponseBody public List<List<Task>> reply(@ModelAttribute Task task,@RequestParam ("parentId") long parentId,HttpSession session) {
List<List<Task>> listTasks = null;
taskEntryService.insertTask(task,session);
listTasks = taskEntryService.selectAssignedTask(task.getAssignTo(), parentId);
String taskurl = siteUrl + "showAssignedTask?assignto="+ task.getAssignTo() + "&taskId="+parentId;
if(task.getTaskUpdateEmailNotify().equalsIgnoreCase("1")){
try {
if(task.getStatus() == 4){
String completedTaskBody = taskCompletedEmailBody(taskurl, task.getAssignToName(), task.getTaskTitle(), task.getAssignerName(), task.getSummary());
sendmailService.sendMail("[email protected]", task.getTaskCreatorEmail(), "Your Task has been Completed", completedTaskBody);
}
} catch (AddressException e) {
e.printStackTrace();
}
}
return listTasks;
}
Так что это лучший способ синхронизировать этот метод.
Пожалуйста, дайте мне знать, если требуется более подробная информация
Каков тип 'sendmailService' и является классом потокобезопасным? То же для 'taskEntryService' –
Как этот метод вызывается? Нажимает ли пользователь URL-адрес? Вы уверены, что этот метод не вызван с неправильной «Задачей» (возможно, ошибкой в интерфейсе)? –
@EmilSit этот метод, когда кто-то отвечает на созданную задачу. Таким образом, этот метод сохраняет значение в базе данных и отправляет электронное письмо разработчику задачи. Это случается только один раз для меня, когда кто-то отвечает на задание в то же время, в противном случае его рабочий штраф. – user965884