2016-07-31 2 views
0

Мое приложение имеет функцию отправки определенных данных приложения на сервер один раз в день каждые 24 часа. Общее количество установленных в Android-приложении приложений для игр - 5,00,000 (приблизительно) Общее количество секунд в 24 ч - 86400 сек.Как распределить нагрузку на сервер в течение всего дня с моего приложения Android

Мне нужно распределить нагрузку на сервер в течение всего дня, чтобы гарантировать, что все установленные приложения не будут отправлять данные одновременно или в короткое время. Короче, мне нужна логика на стороне клиента для равномерного распределения этих вызовов на сервер через 86400 секунд.

+0

Я не понимаю логику. Ваше приложение отправляет SMS на ваш сервер и что ваш сервер делает с этим SMS? отправить его другому пользователю? –

+0

каждому клиенту может быть присвоен временной интервал сервером при первом обращении к серверу. – muratgu

ответ

0

Случайное число должно дать вам достаточно распространения с таким количеством установок. Итак, при первом запуске приложения вызовите Rand (0, 86399) и сохраните его в настройках. Затем отправьте sms на эту секунду в день.

+0

Это не так просто. Как вы планируете действие для отправки смс? Если вы пользуетесь сигналом тревоги, то хорошие будут снова появляться, поскольку они не срабатывают, например. во время доза, но когда устройство просыпается снова в утренние часы. Принудительное устройство для пробуждения - довольно грубая вещь, чтобы просто запустить событие, которое не похоже на время. – Endzeit

+0

Легкий взломать - использовать только половину секунд (43200) и добавить его в 9 утра по местному времени. Должно по-прежнему давать достаточно распространения, особенно если у вас есть пользователи в нескольких часовых поясах. – lionscribe

0

У нас была аналогичная ситуация, и мы переключили этот тип вызова с сервера Apache на node.js-сервер и никогда не оглядывались назад. Node.js может обрабатывать множество других подключений и может возвращать и закрывать соединение до завершения всей работы (например, если данные не являются критическими, вы можете закрыть соединение и вернуться, прежде чем сохранять в базе данных).

Смежные вопросы