Я создаю приложения статистики для онлайн-игры, построенные с использованием API сервлета в Java (для развертывания на Tomcat). Достаточно легко позволить игре отправлять сообщение на сервер статистики каждый раз, когда пользователь входит в систему, поскольку запросы обработки - это то, что для Servlets/Tomcat.
Мне также нужно периодически инициировать запросы на сервере статистики, хотя, например, чтобы получить количество онлайн-пользователей с игрового сервера или количество поклонников со страницы нашего Facebook.
Легко было бы просто начать поток в главном сервлете приложения, и пусть это время от времени извлекает данные, но это немного странно, потому что все остальные потоки создаются Tomcat.
- Делает это так, как хорошо?
- Если нет, то каков рекомендуемый способ сделать это?
- Правильно ли использовать сервлеты для чего-то вроде этого? Какая альтернатива?
Примечание после первых ответов: я не ищу решение проблемы синхронизации или concurrency, потому что я могу легко справиться с обоими. Мне просто нужно знать, как правильно запустить проактивный процесс в контейнере сервлета.