我正在开发一个用于投票的 API。我有一个方法可以启动投票会话,并且会话应该开放 1 分钟,然后在一段时间后关闭。
关闭会话意味着我必须将方法更改setIsSessionOpen为FALSE.
当会话开放时,用户应该能够投票。在我的SessionVote对象内部有两个代表投票的字段(votedYes两个votedNo字段都将存储每个投票的计数)。
这是我到目前为止所做的,它是在服务类中:
public SessionVote openSession(String agendaSubject, Integer sessionId){
SessionVote sessionVote = findBySessionVoteId(sessionId);
Optional<Agenda> agenda = getAgendaBySubject(agendaSubject);
if (agenda.isPresent()) {
sessionVote.setAgenda(agenda.get());
sessionVote.setIsSessionOpen(true);
sessionVote.setStartedTime(System.currentTimeMillis());
LOGGER.info("The session ID {} is opened and started at {}. The subject for voting is: {}", sessionVote.getSessionVoteId(), sessionVote.getStartedTime(), sessionVote.getAgenda().getSubject());
return sessionVote;
} else {
LOGGER.error("No subject was found");
throw new NoSubjectFoundException(Constants.NO_SUBJECT_FOUND);
}
}
Run Code Online (Sandbox Code Playgroud)
我省略了一些代码,以便更清晰、更容易理解我的问题,但如果有必要,我可以添加更多信息。
除非我遗漏了什么,否则一分钟后开始Timer调用。setIsSessionOpen(false)
Timer t = new Timer();
TimerTask tt = new TimerTask() {
@Override
public void run() {
sessionVote.setIsSessionOpen(false);
}
};
t.schedule(tt, TimeUnit.MINUTES.toMillis(1));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |