Обычные методы плотности ядра имеют проблемы, когда существует ограничение, такое как в этом случае для плотности с поддержкой только выше нуля. Обычной рекомендацией для обработки этого было использование пакета logspline:
install.packages("logspline")
library(logspline)
png(); fit <- logspline(rchisq(10000, 3))
plot(fit) ; dev.off()
Если это необходимо сделать в ggplot2 В среде есть функция сплайнов:
densdf <- data.frame( y=dlogspline(seq(0,12,length=1000), fit),
x=seq(0,12,length=1000))
ggplot(densdf, aes(y=y,x=x))+geom_line()
Возможно, вы настаивали на одном с двумя степенями свободы?
Вы могли бы хотеть использовать перенаправление веб-сервера. В случае Apache, a .htaccess
файл, чтобы перенаправить (или переписать URL) пользователи к статической странице обслуживания:
RewriteRule ^updating.*$ $0 [NC,U,QSA,L]
RewriteRule .* /updating/ [NC,U,QSA,R=307,L]
В случае, если Вы хотите получить доступ к сайту сами, когда в режиме техобслуживания, можно присоединить определенную и надо-надеяться-уникальную-строку к useragent заголовку:
RewriteRule ^updating.*$ $0 [NC,U,QSA,L]
RewriteCond %{HTTP:User-Agent} !MY-CUSTOM-UA-STRING [NC]
RewriteRule .* /updating/ [NC,U,QSA,R=307,L]
Вот то, как управлять Вашим агентом пользователя в Firefox:
Создайте новое about:config
ключ называют general.useragent.extra.XYZ
и набор это как "MY-CUSTOM-UA-STRING" или что-либо еще Вы желаете. Firefox присоединит строку к UA.
При использовании Chrome попробуйте новую функцию Mobile Emulation, которая позволяет Вам изменять строку агента пользователя непосредственно от devtools.
Как Вы упомянули себя, альтернативное решение могло устанавливать флага конфигурации на стороне сервера. Прежде, чем сделать так, я предлагаю, чтобы Вы сохранили продолжающиеся операции всего пользователя на сайте и позволили ей возобновить их после периода обслуживания. Кроме того, позвольте им знать точное время обслуживания заранее.
Вы могли реализовать поле состояния, возможно, стиль Ajax один как оранжевая панель наверху страниц StackOverflow, которая сообщает пользователям, что сайт будет понижаться через 10-15 минут или что имеет Вас. Вы могли также отключить логины в течение того времени. Затем просто снизьте сайт полностью, сделайте свое обновление и возвратите его на строке.
Что относительно того, чтобы просто не позволить новым пользователям входить в систему, и контролировать число зарегистрированных пользователей, пока это не пределы 0 и затем можно ли обновить?
Этот подобен предложению Bobby. Путем я достиг того же вида вещи, должен вставить несколько значений к таблице "конфигурации" в базе данных, каждый - дата/время для приведения в нерабочее состояние системы, и другой сообщение.
После того как поле даты не является пустым, затем блок, все логины, и на каждом обновлении страницы, просто используют предупреждение JavaScript для отображения сообщения пользователям, объясняющим, что сайт будет удален через X минут, по причине Y и должен назад быть онлайн в минуты Z. Это - раздражающий и in-your-face способ сделать это, но действительно довольно важно, чтобы они поняли, что не должны начинать заполнять действительно подробную форму.
После того как это после того времени начала обслуживания, затем загрузите всех пользователей на их обновлении следующей страницы.... за исключением администраторов, конечно.
Получение всех клиентов периодически опросить сервер для проверки в течение нависшего периода обслуживания является излишеством, IMO. Если у Вас действительно есть несколько страниц, которые имеют действительно подробные формы, то, возможно, добавляют Ajax, опрашивающий только на тех.
Наличие подобных значений в базе данных легко реализовать, довольно гибко, и идеально подходит для этой ситуации.
Сообщите пользователям заранее, что Ваш сайт будет иметь время простоя в требуемое время и затем выполнит обновление в Ваше наименьшее количество часов наибольшей нагрузки согласно Вашим файлам журнала. Выходные работают отлично для обновления, если Ваш сайт критически важен для бизнеса Вашим пользователям. Немного времени простоя в воскресенье утром около 3:00, вероятно, не собирается возмущать слишком много пользователей. Просто удостоверьтесь, что у Вас есть все, в чем Вы нуждаетесь на месте, прежде чем Вы сделаете обновление так, чтобы можно было минимизировать время простоя. Вы могли бы даже рассмотреть выполнение пробного прогона на тестовом сервере.
Если Ваша система является базирующейся сессией, простой способ состоит в том, чтобы изменить имя сессии. Имя cookie изменится, и никто не получит новый, пока они не войдут в систему снова.