Mover un módulo de proveedor a un nuevo grupo cron en magento 2
On febrero 15, 2021 by adminEstamos utilizando el módulo Firebear para importar datos de productos y precios que se ejecutan en el grupo cron predeterminado. La importación lleva bastante tiempo / recursos, por lo que se recomendó mover el cron de Firebear a su propio grupo. El crontab.xml de Firebear está configurado así:
vagrant/tmp/vendor/firebear/importexport/etc/crontab.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd"> <group> <job name="importexport_jobs_run_id" instance="Firebear\ImportExport\Cron\RunImportJobs" method="execute"> <schedule>*/1 * * * *</schedule> </job> <job name="importexport_export_jobs_run_id" instance="Firebear\ImportExport\Cron\RunExportJobs" method="execute"> <schedule>*/1 * * * *</schedule> </job> </group> </config>
En un nivel alto, necesitaré : 1 – crear un nuevo grupo cron 2 – anular el crontab de Firebear para que se ejecute en un nuevo grupo
Cualquier ayuda en el proceso para lograr esto será muy apreciada.
Respuesta
No puedo comentar sobre publicaciones existentes porque me falta reputación o algo por el estilo, así que lo haré de esta manera en aras de la claridad.
¿No son los últimos 2 pasos, en la respuesta de guerinteed_mike, solo para Magento Cloud? Que yo sepa, usan el archivo .magento.app.yml para configurar el entorno del servidor en su propia plataforma de alojamiento.
Comentarios
- Sí, esto se usó en una instancia de Magento Clooud
- No ' ¿Entonces sería mejor actualizar su respuesta? Otros usuarios que no tienen la edición en la nube pueden confundirse con los últimos pasos. ¿O hay algo que me perdí en t ¿Su tema está restringido solo a la nube?
- Actualizado. Nota: a veces, algunos aspectos no se conocen cuando se aprende algo nuevo.
- No ' no pretendía ser duro ni nada, pero lo noté y pensé que podría ser aclarado. ¡Gracias por actualizar! 🙂
Respuesta
Esta es la solución que utilicé para una instancia de comercio Magento 2.2 alojada en Adobe Cloud.
Cree un módulo nuevo o agréguelo a uno existente:
1 – Nuevo grupo cron
[module]/etc/cron_group.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/cron_groups.xsd"> <group> <schedule_generate_every>1</schedule_generate_every> <schedule_ahead_for>4</schedule_ahead_for> <schedule_lifetime>2</schedule_lifetime> <history_cleanup_every>10</history_cleanup_every> <history_success_lifetime>120</history_success_lifetime> <history_failure_lifetime>600</history_failure_lifetime> <use_separate_process>1</use_separate_process> </group> </config>
2 – cree un nuevo crontab.xml o agregue trabajos a los existentes:
[module]/etc/crontab.xml <?xml version="1.0"?> <!-- /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd"> <group> <job name="cron_job_name" instance="Magento\SomeModule\Cron\SomeJob" method="execute"> <schedule>* * * * *</schedule> </job> </group> </config>
3 – agregue el nuevo grupo cron a .magento.app.yml
... crons: ... newcrongroupname: spec: "* * * * *" cmd: "php bin/magento cron:run --group="new_cron_group_name""
4 – elimine crontab.xml del módulo del proveedor mediante los enlaces de implementación en .app.magento.yml:
... hooks: # We run build hooks before your application has been packaged. build: | set -e rm -f vendor/modulename/importexport/etc/crontab.xml php ./vendor/bin/ece-tools build:generate php ./vendor/bin/ece-tools build:transfer ...
Tengo entendido que el # 4 también podría hacerse mediante un parche.
Deja una respuesta