Saltar al contenido

¿Magento 2 ejecuta un Cron específico sin cron: ejecutar el comando CLI?

Haz todo lo posible por comprender el código correctamente previamente a usarlo a tu proyecto si ttienes algo que aportar puedes dejarlo en los comentarios.

Solución:

Una opción para ahorrar en el tiempo de desarrollo sería usar N98MageRun para Magento 2.

Esto tiene los comandos maravillosos. sys:cron:list y sys:cron:run.

Con 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 comando.

Se puede instalar fácilmente a través de composer require --dev n98/magerun2 y recomendaría que sea una opción para una instalación de desarrollo cuando se trabaja con Magento 2

¡Piensa de forma sencilla! La clase Cron es una clase “normal”. Podemos usar un Playground para probar nuestro Cron: ¿Cómo puedo iniciar Magento 2 en un script test.php? El Administrador de Objetos creará nuestro Objeto Cron. Y luego, podemos probar nuestro Cron llamando a la URL directamente en el navegador.

** Tenga en cuenta que si usa Nginx, puede colocar estos archivos en la carpeta pub/ y ajustar la ruta requerida para el archivo Test.php para require '../app/bootstrap.php';

Prueba.php

createApplication('TestApp');
$bootstrap->run($app);

TestApp.php

 public function launch()
 
        /** @var VendorModuleCronTest $cron */
        $cron = MagentoFrameworkAppObjectManager::getInstance()
            ->create('VendorModuleCronTest');

        $cron->execute();

        return $this->_response;

 

ingrese la descripción de la imagen aquí

Puedes lograrlo usando dos archivos:

crear carpeta y clase en la raíz del proyecto como:

crons/CronprocessApp.php

    _response = $response;
        //$state->setAreaCode('any area'); // or 'adminhtml', depending on your needs
        $state->setAreaCode('adminhtml'); // or 'adminhtml', depending on your needs
    
    public function launch()
    
        /** @var VendorModuleCronTest $cron */
        $cron = MagentoFrameworkAppObjectManager::getInstance()
            ->create('CustomPreorderCronChangeVisiblityNonPreorderProduct'); //pass the name of your cron class path 
        $cron->execute();       


        return $this->_response;

    
    public function catchException(MagentoFrameworkAppBootstrap $bootstrap, Exception $exception)
    
        return false;
    

?>

Crea otro archivo de clase:

crones/Cronprocess.php

 createApplication('CronprocessApp');
$bootstrap->run($app);

Para ejecutar cron, vaya a cli con la ruta raíz del proyecto y ejecute el siguiente comando:

php crons/cronprocess.php

Si tienes alguna vacilación o disposición de ascender nuestro división puedes añadir una apostilla y con deseo lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *