Een leveranciersmodule verplaatsen naar een nieuwe cron-groep in magento 2
Geplaatst op februari 15, 2021 door adminWe gebruiken de Firebear-module om product- en prijsgegevens te importeren die in de standaard cron-groep draaien. Het importeren kost nogal wat tijd / middelen, dus het werd aanbevolen om de Firebear-cron naar zijn eigen groep te verplaatsen. De Firebear crontab.xml is momenteel als volgt opgezet:
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>
Op een hoog niveau moet ik : 1 – maak een nieuwe cron-groep 2 – negeer Firebear crontab om in een nieuwe groep te draaien
Alle hulp bij het proces om dit te bereiken wordt zeer op prijs gesteld.
Antwoord
Ik kan “geen commentaar geven op bestaande berichten omdat ik” mijn reputatie mis of iets dergelijks, dus ik ga het op deze manier doen voor de duidelijkheid.
Zijn de laatste 2 stappen, in het antwoord van guerinteed_mike, niet alleen voor Magento Cloud? Voor zover ik weet, gebruiken ze het .magento.app.yml-bestand voor het configureren van de serveromgeving op hun eigen hostingplatform.
Reacties
- Ja, dit werd gebruikt op een Magento Clooud-instantie
- Zou niet ' Is het dan beter om uw antwoord bij te werken? Andere gebruikers die de cloudeditie niet hebben, kunnen in de war raken door de laatste stappen. Of heb ik iets gemist binnen t zijn onderwerp dat is beperkt tot alleen cloud?
- Bijgewerkt. Opmerking – soms zijn sommige aspecten niet bekend bij het leren van iets nieuws.
- Ik bedoelde niet ' niet hard te zijn of zo, maar merkte het gewoon op en dacht dat het zou kunnen zijn verduidelijkt. Bedankt voor het updaten! 🙂
Answer
Dit is de oplossing die ik heb gebruikt voor een Magento 2.2 commerce-instantie die wordt gehost op Adobe Cloud.
Maak een nieuwe module of voeg toe aan een bestaande:
1 – Nieuwe Cron-groep
[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 – maak nieuwe crontab.xml of voeg banen toe aan bestaande:
[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 – voeg de nieuwe cron-groep toe aan .magento.app.yml
... crons: ... newcrongroupname: spec: "* * * * *" cmd: "php bin/magento cron:run --group="new_cron_group_name""
4 – verwijder de crontab.xml uit de leveranciersmodule via deploy hooks in .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 ...
Ik heb begrepen dat # 4 ook kan worden gedaan via een patch.
Geef een reactie