Я думаю, что это решенная проблема, но мой Google-фу не был достаточно хорош.
У меня есть таблица отслеживания состояния нескольких вещей. Сервер может выдавать изменения клиентам по желанию.
Проблема в том, что я не хочу загружать обновления, если последнее обновление было менее 5 секунд назад.
Какой самый чистый способ достижения этого без создания другого потока менеджера событий?
Мой текущий удар выглядит так:
pushEvent(){
Look up the last update time
if: last update less than 5 sec ago
then do nothing
else
pushToClients
}
В большинстве случаев это работает достаточно хорошо, но, очевидно, последнее обновление можно оставить без изменений.
Какой хороший способ сделать это?
Несколько способов, о которых я думал:
- Добавить 5 секундную задержку ко всем push-сообщениям (например, Thread.sleep), чтобы я мог
проверьте, было ли обновление уже запланировано. Не идеально но никто
возражал бы
- Сделайте push, затем установите doNotPush = true. Используйте таймер для
установите его обратно в false.
Спасибо