我正在开发一个Spring应用程序,其中有我正在处理的服务台功能。因此,作为服务台的一部分,用户可以创建问题并指派支持团队成员。在这方面,他们还可以分配需要解决多少时间的问题。我正在java.sql.TimeStamp中设定时间。
现在,当时间到期,我想发送一封电子邮件给支持团队管理员,谁创造了问题和支持团队成员负责解决问题。
如果这是一个正常的计划或cron作业,我只需编写一个@Scheduled方法并完成它,但是在这里,我想在6小时后检查这个问题是否已经解决。我该如何做到这一点?我不知道老实说。
下面是服务层SupportRequest的一部分:
@Service
@Transactional
public class SupportRequestServiceImpl implements SupportRequestService{
private final SupportRequestDAO supportRequestDAO;
@Autowired
public SupportRequestServiceImpl(SupportRequestDAO supportRequestDAO){
this.supportRequestDAO = supportRequestDAO;
}
@Autowired
private SupportTeamService supportTeamService;
@Override
public int addSupportRequest(SupportRequest supportRequest, int assignedTeamId, Long groupId) {
SupportTeam supportTeam = this.supportTeamService.getSupportTeamMemberById(assignedTeamId);
if(!(supportTeam == null)){
supportRequest.setCreationTime(new Timestamp(System.currentTimeMillis()));
supportRequest.setAssignedTeamMemberId(supportTeam.getTeamId());
return this.supportRequestDAO.addSupportRequest(supportRequest,groupId);
}
return 0;
}
}我不知道还能展示什么。非常感谢。
更新
像这样的东西有用吗?
long delay = 1000*60*60*12; // after 12 hrs
Timer timer = new Timer();
Calendar cal = Calendar.getInstance();
timer.schedule(new TimerTask() {
public void run() {
// Task here ...
System.out.println("inside the main");
Integer id = new Integer(10);
Assert.assertNotNull(id);
}
}, delay);发布于 2015-09-03 10:51:39
对于这种场景,应该有后台进程运行。这一过程将检查在给定时间内尚未解决的问题。然后,这个过程将发送一条消息给任何人,然后继续在后台运行。
有不同的方法可以做到这一点。
1.批处理过程您可以制作批处理过程。批处理将在您的服务器上运行,它将检查过期的问题,然后发送邮件给支持团队管理员。
2.实时更新技术----您也可以在春季实时更新技术.使用此技术,您将在每个给定期间之后触发请求,以检查过期问题。如果发现任何问题尚未修复,您可以发送邮件。请阅读相关文件:Spring 3.2预览:实时更新技术
Web 3. Web 网络套接字也可以用于此类任务。在这里找到好的来源:SpringFramework4.0 M2: WEBSOCKET消息传递体系结构
https://stackoverflow.com/questions/32371331
复制相似问题