Настройка xdebug для queue job.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Настройка xdebug для queue job.

Сообщение slo_nik »

Добрый вечер.

Возникла небольшая проблема с xdebug и не могу понять в чём дело.

Есть старый проект на yii2, который надо довести до ума. Работа с очередями, в очередь ставится файл на парсинг товаров и запись в базу.
Не могу понять, почему не ловятся точки останова в самом файле очереди.
Проект крутится в docker.
Cli-interpreter настроен из docker-a, xdebug в phpstorm валидируется.

В контроллере ставлю точку на строке, в которой добавляется задача в очередь.

Код: Выделить всё

$queue = Yii::$app->queue->ttr(10000)->push(new ImportJob([....])
В этом месте скрипт останавливается, но потом переходит с следующему условию в этом файле, а вот на точки в ImportJob никак не реагирует.
Убираю вышеуказанную точку, но на этом вся работа xdebug прекращается.
Но мне надо попасть в ImportJob. Там куча данных обрабатывается и надо отследить куда и что идёт, но вот как это сделать не знаю.

Подскажите, как можно отследить точки останова в файле очереди? Какие настройки необходимо изменить для этого?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Настройка xdebug для queue job.

Сообщение samdark »

Скорее всего потому как создаётся дочерний процесс. Попробуйте тормознуть все демоны, которые слушают очередь и выполнить проблемную Job-у или через queue/exec или через queue/run.
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Re: Настройка xdebug для queue job.

Сообщение slo_nik »

samdark писал(а): 2023.02.04, 11:02 Скорее всего потому как создаётся дочерний процесс. Попробуйте тормознуть все демоны, которые слушают очередь и выполнить проблемную Job-у или через queue/exec или через queue/run.
Добрый день.

Есть supervisor и очередь обрабатывается в rabbitmq.

Остановил supervisor, запустил через queue/listen, но ситуация не изменилась.
Аватара пользователя
ElisDN
Сообщения: 5841
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Настройка xdebug для queue job.

Сообщение ElisDN »

Потому что контроллер выполняется в процессе PHP-FPM, где отладка включается через Cookies, а задание очереди выполняется в отдельном запущенном консольном процессе PHP-CLI.

Для отладки консольных команд можно перейти в Run > Edit Configurations, добавить запуск PHP-скрипта

Код: Выделить всё

yiic.php queue/listen
и запускать его оттуда кнопкой Debug.

Либо запускать слушатель очереди в терминале, указывая ему вручную все параметры по примеру из документации PhpStorm.
Ответить