2016-01-11 2 views
1

У меня есть приложение на стороне сервера, в котором таймер (в течение 3 минут) необходимо запустить при получении первого сообщения от клиента. К серверу может подключаться не более 100 клиентов. Поэтому для каждого клиента необходимо поддерживать 100 таймеров в 100 потоках (для каждого клиента). Есть ли альтернативное решение для поддержки этих 100 таймеров (например, использование epoll)?Альтернатива сохранению таймера на стороне сервера для каждого подключенного клиента

EDIT: Цель таймера - проверить, поступают ли какие-либо сообщения от клиента в течение следующих 3 минут. Если он не появляется, появляется указание об ошибке. Если сообщение приходит в течение 3 минут, таймер истекает и снова запускается ,

ответ

0

Альтернативное решение - это только один таймер для клиента, который будет истекать раньше всего. Когда этот таймер истекает (или отменяется), вы устанавливаете новый таймер для следующего самого раннего истекающего клиента.

+0

Не нужно ли нам таймер, чтобы идентифицировать клиента, истекающего раньше. В этом случае таймеры должны поддерживаться для каждого клиента? Пожалуйста, исправьте, если я ошибаюсь. –

+0

Все, что вам нужно сделать, это отсортировать список клиентов по истечении срока действия, чтобы определить, что клиент истекает раньше. – caf