Я использую деплойер (https://deployer.org/docs/6.x/tasks) для развертывания моего приложения laravel, и оно работает как шарм. Тем не менее, я хочу сделать его более красивым. Почему? Поскольку у меня запущены фоновые процессы NodeJS, и при каждом развертывании их необходимо перезапускать. Так как есть 2 вида приложений, то в моем присутствует следующее развернуть.php
задача('после развертывания', [
//'cron:установить',
'pm2: перезагрузка: qworker',
'pm2: перезагрузка: эхо',
'cachetool:очистить:opcache',
])->desc('Задачи после развертывания');
Теперь для этого мне нужно было сделать 2 задачи в recipes.php
desc('Перезапустить QWorker');
задача(
'pm2: перезагрузка: qworker',
функция () {
$option = получить('pm2_qworker_name');
run("Перезапуск pm2 ${option}");
}
) -> onHosts (getenv ('SSH_HOST_1'));
desc('Перезапустить эхо-серверы');
задача(
'pm2: перезагрузка: эхо',
функция () {
$option = получить('pm2_echo_name');
run("Перезапуск pm2 ${option}");
}
);
Но я хочу свести это только к одной задаче, но при этом иметь возможность сказать, какой процесс я хочу перезапустить. Моя цель выглядела бы примерно так в развернуть.php
файл
задача('после развертывания', [
//'cron:установить',
'pm2: перезапустить --что-то',
'pm2: перезапустить --something2',
'cachetool:очистить:opcache',
])->desc('Задачи после развертывания');
Любые идеи, как определить это в recipes.php
только в одной задаче?