Um es kurz zu machen: xdebug stoppt nicht zuverlässig an den Haltepunkten in meinen Cron-Dateien, wenn das typische verwendet wird:
php bin/magento cron:run
Xdebug ist alles richtig eingerichtet und manchmal funktioniert es, aber in 85% der Fälle funktioniert es nicht und bleibt einfach in der CLI hängen, bis ich das Abhören von Verbindungen in phpstorm ausschalte.
Gibt es eine Möglichkeit, nur eine Cron-Datei auszuführen? Ich musste den Inhalt meiner Cron-Datei tatsächlich kopieren und in einen separaten Konsolenbefehl einfügen, um sie ordnungsgemäß in xdebug zu testen, was nicht ideal ist.
In Magento 1.x habe ich den AOE-Scheduler verwendet, um Cron-Jobs mit Xdebug zu testen, indem ich zum Administrator gegangen bin, den gewünschten angekreuzt und aus der Dropdown-Liste ausgeführt habe, und es hat funktioniert.
Ich suche nach etwas wie:
php bin/magento modulename:cronjob
das sollte immer den cron laufen lassen, auch wenn es nicht terminiert ist.
require '../app/bootstrap.php';
auch auf der TestApp.php muss es das geben:return $this->_response;
oder es wird einen Fehler auslösen, den Sie auf Ihrem phpstorm-Screenshot haben, aber nicht den tatsächlichen Code. Ich werde versuchen, Ihre Antwort damit zu bearbeiten.Eine Option zum Einsparen der Entwicklungszeit wäre die Verwendung von N98MageRun für Magento 2.
Das hat die wunderbaren Befehle
sys:cron:list
undsys:cron:run
.Mit diesen Befehlen können Sie den spezifischen Jobcode für Ihren Cron finden und dann nur diesen Cron über die Befehlszeile auslösen.
Es kann einfach über installiert werden
composer require-dev n98/magerun2
und ich würde empfehlen, dass es eine Go-to-Dev-Installation ist, wenn Sie mit Magento 2 arbeitenquelle
Sie können mit zwei Dateien erreichen:
Erstelle einen Ordner und eine Klasse im Stammverzeichnis des Projekts wie:
crons / CronprocessApp.php
Erstellen Sie eine weitere Klassendatei:
crons / Cronprocess.php
Um cron auszuführen, gehe zu cli mit dem Projekt-Root-Pfad und führe den folgenden Befehl aus:
quelle
So verhindern Sie, dass Xdebug beim Ausführen gesperrt wird
bin/magento cron:run
quelle