Déplacement dun module fournisseur vers un nouveau groupe cron dans magento 2
On février 15, 2021 by adminNous utilisons le module Firebear pour importer des données de produits et de prix qui sexécutent dans le groupe cron par défaut. Limportation prend un peu de temps / ressources, il a donc été recommandé de déplacer le cron Firebear vers son propre groupe. Le Firebear crontab.xml est actuellement configuré comme ceci:
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>
À un niveau élevé, je devrai : 1 – créer un nouveau groupe cron 2 – remplacer Firebear crontab pour quil sexécute dans un nouveau groupe
Toute aide sur le processus pour accomplir cela sera très appréciée.
Réponse
Je ne peux pas commenter les messages existants parce que je nai pas de réputation ou quelque chose comme ça, donc je vais le faire de cette façon pour plus de clarté.
Ne sont-ils pas les 2 dernières étapes, dans la réponse de guerinteed_mike, juste pour Magento Cloud? A ma connaissance, ils utilisent le fichier .magento.app.yml pour configurer lenvironnement serveur sur leur propre plateforme dhébergement.
Commentaires
- Oui, cela a été utilisé sur une instance Magento Clooud
- wouldn ' t il vaudrait mieux alors mettre à jour votre réponse? Dautres utilisateurs ne disposant pas de lédition cloud pourraient être déroutés par les dernières étapes. Ou y a-t-il quelque chose que jai manqué dans t son sujet qui est limité au cloud uniquement?
- Mis à jour. Remarque – parfois, certains aspects ne sont pas connus lors de lapprentissage de quelque chose de nouveau.
- Je ne ' pas voulu être dur ou quoi que ce soit, mais je lai juste remarqué et jai pensé que cela pourrait être clarifié. Merci pour la mise à jour! 🙂
Réponse
Cest la solution que jai utilisée pour une instance de commerce Magento 2.2 hébergée sur Adobe Cloud.
Créez un nouveau module ou ajoutez à un existant:
1 – Nouveau groupe 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 – créez un nouveau crontab.xml ou ajoutez des tâches à des tâches existantes:
[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 – ajoutez le nouveau groupe cron à .magento.app.yml
... crons: ... newcrongroupname: spec: "* * * * *" cmd: "php bin/magento cron:run --group="new_cron_group_name""
4 – supprimez le crontab.xml du module fournisseur via les hooks de déploiement dans .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 ...
Je crois comprendre que le # 4 pourrait également être fait via un patch.
Laisser un commentaire