Установить/обновлять скрипты - могут ли они работать несколько раз, когда несколько пользователей попадают на сайт до того, как они закончится?

magento.stackexchange https://magento.stackexchange.com/questions/3078

  •  16-10-2019
  •  | 
  •  

Вопрос

У нас есть пара обновлений, которые мы хотели бы запустить с помощью скрипта обновления модуля. Один из них занимает около 5 минут.

Проблема, в которой мы не уверены, заключается в том, что сайт очень активен.

Поэтому, когда мы подтолкнули сценарий обновления к производству, как он будет вести себя?

Будет ли сценарий обновления постоянно работать несколько раз, когда люди попадают на сайт, пока один экземпляр его не будет завершен?

Является ли Magento умным, чтобы запустить только один экземпляр (даже если он еще не завершен, а другие люди попадают на сайт)?

Мы на Magento EE 1.9.

Это было полезно?

Решение

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

Лучшая практика:

Используя SSH, запустите следующее из корня документа Magento:

touch maintenance.flag

Это создаст файл под названием «Management.flag» в вашем корне Magento, который эффективно вытащит ваш магазин в автономном режиме во время этого обновления. 5 минут простоя должно быть относительно безопасным, если вы бежите в непиковые или ночные часы.

Обновите свой магазин Magento, запустив обновление/вытягивание из вашего исходного управления, или с помощью предпочтительного метода развертывания. Чтобы выполнить обновление, вы можете получить:

php index.php - снова из корня документа. Это начнет ваше обновление.

Вы можете позволить себе получить доступ к части CMS (если вы предпочитаете не запускать сценарий обновления сами через SSH), внедрив обходной путь index.php (Read: Hack), который позволяет получить доступ к конкретным IP -адресам, пропустив проверку файла manaustnable.flag :

$ip = $_SERVER['REMOTE_ADDR'];

$allowed = array('1.1.1.1','2.2.2.2'); // these are the IP's allowed

И замените эту линию:

if (file_exists($maintenanceFile)) {

С этой линией:

if (file_exists($maintenanceFile) && !in_array($ip, $allowed)) { 

Источник: http://inchoo.net/ecommerce/magento/maintion-dode-in-magento/

Короче говоря, Восстановление для очистки нескольких выполнений обновления потенциально приведет к более длительному простоя чем если бы вы только что взяли магазин с самого начала. Планируйте свое обслуживание и практикуйте его в своей стадии много раз, прежде чем выполнить обновление.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top