Задать вопрос
@apokin
Веб-разработчик

Как обновлять/проверять пакеты автоматически?

Есть несколько проектов. Все они обновляют товары по одному поставщику. Парсеры оформлены в виде пакетов и можно обновиться через composer.

Поставщик вносит изменения в свое api. И тут каждому на сервер нужно заходить в консоль и обновлять. Много лишних действий.

Как заставить обновляться их автоматически? Как должно работать на мой взгляд:

В очереди по расписанию выполняется проверка на наличие обновлений и запуск обновления.
Запуск/проверка обновления по кнопке из админ панели.
Было бы очень неплохо видеть прогресс из админ панели.
Вопросы: Как чекнуть пакеты? Как запустить обновления автоматом или по кнопке?

Кто сталкивался с такой задачей? Может есть готовые решения по этой теме?
  • Вопрос задан
  • 224 просмотра
Подписаться 1 Оценить 1 комментарий
Решения вопроса 2
AmdY
@AmdY
PHP и прочие вебштучки
Ну, особой проблемы нет, вы просто дёргаете команду через exec
exec('composer.phar update venrorName/packageName', $output);
Команда полностью выполнится и вывод будет в переменной $output

Если гемороиться с прогрессом в реалтайм, то всё усложняется. Опять же дёргаете через exec только запускаете её в фоне, а вывод перенаправляете в какой-нибудь файл из которого каким-нибудь аякс-запосом считываете информацию лог файла.
exec('composer.phar update venrorName/packageName > output.log &');
Ответ написан
@apokin Автор вопроса
Веб-разработчик
Реализовал следующим образом.
С центрального сайта идет запрос на обновление по кнопке. На принимающей стороне запускается обновление через exec в очереди. Передаем на обновление только свои пакеты. Результат пишется в файл и отправляется на центральный сайт.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DJZT
@DJZT
Laravel - code for you
Не очень хорошая идея делать безконтрольное обновление пакетов. Бывают случаи, когда не всё гладко проходит. Банально может быть мелкий баг, который исправят через пару часов, а вы уже обновились. И сайт какое-то время пролежал.

Из такой ситуации вижу пока один выход. Деать обновление, но сохранять номер версии рабочей. Если что-то перестаёт работать - откатываться на предыдущую версию.

А по самому процесс - Вячеслав Плиско довольно чётко описал.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы