Para resumir, xdebug no se detendrá de manera confiable en los puntos de interrupción en mis archivos cron cuando se usa el típico:
php bin/magento cron:run
Xdebug está configurado correctamente y, a veces, funcionará, pero el 85% del tiempo no lo hará, y simplemente cuelga en la CLI hasta que apague la escucha de conexiones en phpstorm.
¿Hay alguna manera de ejecutar solo un archivo cron de alguna manera? Tuve que copiar y pegar el contenido de mi archivo cron en un comando de consola separado para probarlo correctamente en xdebug, lo que no es ideal.
En Magento 1.x solía usar el AOE Scheduler para probar trabajos cron con Xdebug yendo al administrador, marcando la casilla que quería y eligiendo ejecutar en el menú desplegable y funcionó bien.
Estoy buscando usar algo como:
php bin/magento modulename:cronjob
que siempre debe ejecutar el cron, incluso si no está programado.
require '../app/bootstrap.php';
también en TestApp.php debe haber:return $this->_response;
o arrojará un error que tienes en tu captura de pantalla de phpstorm pero no el código real. Trataré de editar tu respuesta con esto.La opción para ahorrar en el tiempo de desarrollo sería usar N98MageRun para Magento 2.
Esto tiene los maravillosos comandos
sys:cron:list
ysys:cron:run
.Usando estos comandos, podrá encontrar el código de trabajo específico para su cron y luego activar solo ese cron desde la línea de comandos.
Se puede instalar fácilmente a través de
composer require-dev n98/magerun2
y recomendaría que sea una instalación de desarrollo cuando se trabaja con Magento 2fuente
Puedes lograrlo usando dos archivos:
crear carpeta y clase en la raíz del proyecto como:
crons / CronprocessApp.php
Crea otro archivo de clase:
crons / Cronprocess.php
Para ejecutar cron, vaya a cli con la ruta raíz del proyecto y ejecute el siguiente comando:
fuente
Cómo evitar que Xdebug se bloquee al ejecutarse
bin/magento cron:run
fuente