Untuk membuat cerita panjang, xdebug tidak akan berhenti pada breakpoints di file cron saya saat menggunakan tipikal:
php bin/magento cron:run
Xdebug sudah diatur dengan benar dan kadang-kadang akan berfungsi tetapi 85% dari waktu tidak akan dan hanya bertahan di CLI sampai saya mematikan mendengarkan koneksi di phpstorm.
Apakah ada cara untuk menjalankan hanya satu file cron? Saya harus benar-benar menyalin dan menempelkan isi file cron saya ke perintah konsol terpisah untuk mengujinya dengan benar di xdebug yang tidak ideal.
Di Magento 1.x saya dulu menggunakan Penjadwal AOE untuk menguji pekerjaan cron dengan Xdebug dengan pergi ke admin, mencentang yang saya inginkan, dan memilih lari dari dropdown dan itu bekerja dengan baik.
Saya ingin menggunakan sesuatu seperti:
php bin/magento modulename:cronjob
yang harus selalu menjalankan cron bahkan jika itu tidak dijadwalkan.
require '../app/bootstrap.php';
juga di TestApp.php perlu ada:return $this->_response;
atau itu akan melempar kesalahan yang Anda miliki di screenshot phpstorm Anda tetapi bukan kode yang sebenarnya. Saya akan mencoba dan mengedit jawaban Anda dengan ini.Pilihan untuk menghemat waktu pengembangan adalah menggunakan N98MageRun untuk Magento 2.
Ini memiliki perintah yang luar biasa
sys:cron:list
dansys:cron:run
.Dengan menggunakan perintah ini, Anda akan dapat menemukan kode pekerjaan spesifik untuk cron Anda dan kemudian memicu cron itu dari baris perintah.
Ini dapat dengan mudah diinstal melalui
composer require-dev n98/magerun2
dan saya akan merekomendasikan itu harus menjadi instalasi dev ketika bekerja dengan Magento 2sumber
Anda dapat menggunakan dua file:
buat folder dan kelas di root proyek seperti:
crons / CronprocessApp.php
Buat file kelas lain:
crons / Cronprocess.php
Untuk menjalankan cron, pergi ke cli dengan path root proyek dan jalankan perintah di bawah ini:
sumber
Bagaimana mencegah Xdebug mengunci saat menjalankan
bin/magento cron:run
sumber