사용자가 5 시간 내에 작업을 중단하면 특정 방법을 실행해야합니다.사용자 활동을위한 타이머를 설정하는 방법은 무엇입니까?
사용자가 로그인했지만 5 시간 동안 특정 데이터베이스 테이블에 레코드를 추가하지는 않습니다.
사용자가 지정된 테이블에 레코드를 추가 할 때마다 해당 특정 사용자의 타이머를 재설정해야합니다. 그렇지 않으면 계속 유지됩니다.
5 시간에 도달하면 응용 프로그램에 5 시간 동안 아무 레코드도 추가하지 않았다는 메시지가 표시되어야합니다. 명확히하기 위해
로그인되는 동안 그들이 무슨 상관 없어 I 위 그림과 같이 다음 단계
1- (1:00 PM) user1 is signed in -> timer of user1 is set
3- (1:00 PM) user2 is signed in -> timer of user2 is set
5- (1:10 PM) user1 adds something to the tableA
-> timer of user1 will be reset
6- (6:00 PM) user1 adds something to the tableA
-> timer of user1 will be reset
7- (6:00 PM) 5 hours is elapsed for user2 without adding any record to tableA
-> show the message to user2
8- (11:10 PM) 5 hours is elapsed for user1 without adding a record to TableA
-> show the message to user1
....
- 살펴 보시기 바랍니다. 난 그냥 그 특정 테이블에 레코드를 추가하는 방법에 대한 관심. (TableA) 예를 들어 사용자 2는 활성화되어 있지만 레코드를 tableA에 추가하지 않으므로 타이머가 5 시간에 도달하면 메시지를 수신합니다.
나는 다음을 찾았지만 유용하지 않다고 생각한다. 일단 사용자 클래스에서 실행하면 동일한 클래스로 돌아가서 재설정 할 수 없다.
Timer timer = new Timer();
int startingTime=10000; //millisecond 10 seconds=10000
int delayTime=1000; // millisecond 1 second
timer.schedule(new TimerTask()
{
public void run() {
System.out.println("Timer repeat statement");
}
},startingTime,delayTime);
감사합니다,하지만 난 타이머를 재설정하거나 메시지를 표시해야 특정 테이블에 레코드를 추가하지 않으면 해당 기간 동안 수행 한 작업에 신경을 쓰지 않습니다. – J888
그런 다음 세션 범위 bean을 구현하여이를 확인하고 특정 테이블에 대한 레코드가 수행 될 때 서비스 계층에서 호출 된 메소드로 타이머를 재설정 할 수 있습니다. – dds
각 사용자가 아닌 컨텍스트에 세션 범위 Bean을 연결하지 않으면 아이디어가 없습니다. 당신이 나에게 모범을 보여 주거나 튜토리얼을 가르쳐 주겠습니까? – J888