Как закрыть приложение CodeIgniter? - PullRequest
2 голосов
/ 09 сентября 2010

Предположим, у меня есть приложение CI, которое выполняет следующее:

  • Разрешить пользователям входить в систему и выполнять определенные задачи
  • Постоянно запускайте скрипты cron в фоновом режиме.

Теперь, скажем, мне нужно сделать некоторые обновления на сайте. Как мне сделать это безопасно? Я не хочу выключать сервер, когда пользователи вошли в систему или сценарий cron все еще работает.

Я мог бы установить флаг в БД, чтобы страница входа больше не позволяла людям входить в систему. Этот флаг также можно использовать, чтобы скрипт cron прекратил запускать больше процессов. Проблема в том, как узнать, есть ли еще пользователи, вошедшие в систему, или сценарии, все еще работающие в фоновом режиме?

Ответы [ 3 ]

3 голосов
/ 09 сентября 2010

Что бы я сделал, это установил файл .htaccess для перенаправления ВСЕХ пользователей, независимо от того, какой URL они пытаются посетить, на maintanance.html.

Вот пример

РЕДАКТИРОВАТЬ:

Ой извините ... Я забыл сделать работу cron.Если вы используете Linux, вы можете вывести crontab во временный файл, затем удалите вкладку cron, чтобы она не запускалась.Когда вы закончите обновление, вы можете переместить временный файл обратно в crontab

crontab -l > crontab_file

crontab -r

crontab crontab_file
0 голосов
/ 09 сентября 2010

Я просто использую свой файл index.php.Мои приложения находятся в верхнем каталоге, поэтому у меня может быть приложение, называемое «техническое обслуживание».Тогда я просто изменяю это:

$application_folder = "appname";

на это:

$application_folder = "maintenance";

0 голосов
/ 09 сентября 2010

Я не тестировал ни одно из этих решений, но отметил несколько страниц, предлагающих некоторые идеи о том, как решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...