Как настроить таймер активности пользователей?

Мне нужно выполнить определенный метод, если пользователь перестанет работать через 5 часов.

Допустим, пользователь вошел в систему, но он не добавляет ни одной записи в конкретную таблицу базы данных в течение 5 часов.

Каждый раз, когда пользователь добавляет запись в указанную таблицу, таймер этого конкретного пользователя должен быть сброшен, иначе он будет продолжать работать.

Если оно достигает 5 часов, приложение должно показать сообщение, указывающее, что вы не добавили ни одной записи в течение 5 часов.

Чтобы уточнить, пожалуйста, посмотрите на эти шаги

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
  ....
Как показано выше, мне все равно, что они делают во время входа в систему. Мне просто нужно добавить записи в эту конкретную таблицу. (Таблица A) Например, пользователь 2 активен, но не добавляет никаких записей в таблицу A, поэтому получает сообщение, как только его таймер достигает 5 часов.

мы нашли следующее, кроме, но предположим, что это бесполезно, так как, как только я запускаю его в user 'С классом, невозможно вернуться к тому же классу и сбросить его.

 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);

Ответы на вопрос(1)

Ваш ответ на вопрос