Справочная информация:
За 2 минуты до каждого часа сервер останавливает доступ к сайту, возвращая занятый экран, пока обрабатывает данные, полученные за предыдущий час. Это может длиться менее двух минут, и в этом случае он спит до истечения двух минут. Если он длится дольше двух минут, он работает столько, сколько ему нужно, затем возвращается. Блок содержится в отдельной таблице с одним полем и одним значением в этом поле.
В настоящее время пользователь получает информацию о блоке только тогда, когда он пытается выполнить действие (щелкнуть ссылку, отправить форму и т. Д.). Я планировал обновить код, чтобы автоматически отключить лайтбокс и сообщение о блокировке с помощью плагина jQuery BlockUI.
Есть два основных способа достижения цели:
Опрос каждые N секунд (через PeriodicalUpdater или аналогичный)
Длинный опрос (комета)
Вы можете уменьшить нагрузку на сервер на 1, проверив местное время, и когда оно приблизится к фактическому времени, запустите цикл опроса. Это может быть более точным, посылая местное время серверу, возвращающему разностный мод 60. Тем не менее более 100 человек обращаются к серверу, что вызывает дополнительный удар по БД.
Вариант 2 является более привлекательным выбором. Это удаляет повторное попадание на веб-сервер, но не устраняет повторную проверку БД. Однако 2 не является выбором для бегунов Apache 2.0, таких как мы, и хотя мы владеем нашим сервером, никто из нас не является веб-администратором и не хочет его ломать - люди платят реальные деньги за игру, поэтому, если он не сломается, не исправить (следовательно, почему все еще работает PHP4 / MySQL3).
Из-за проблем с вариантом 2 мы вернулись с вариантом 1 - неоптимальным.
Так что мой вопрос действительно двойственный:
Есть ли другие возможности, которые я упустил?
Является ли длинный опрос такой проблемой при таком размере? Я понимаю, что это не масштабируется, но меня больше волнует, на каком уровне он лишает Apache потоков. Также есть ли какие-либо параметры, которые вы можете настроить в Apache, чтобы он немного масштабировался?