Flytte en leverandørmodul til ny cron-gruppe i magento 2
On februar 15, 2021 by adminVi bruker Firebear-modulen til å importere produkt- og prisdata som kjører i standard cron-gruppen. Importen tar ganske mye tid / ressurser, så det ble anbefalt å flytte Firebear cron til sin egen gruppe. Firebear crontab.xml er for øyeblikket konfigurert slik:
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>
På et høyt nivå må jeg : 1 – opprett ny cron-gruppe 2 – overstyr Firebear crontab for å kjøre i ny gruppe
Enhver hjelp til prosessen for å oppnå dette vil bli satt stor pris på.
Svar
Jeg kan ikke kommentere eksisterende innlegg fordi jeg mangler rykte eller noe sånt, så jeg kommer til å gjøre det på denne måten for klarhets skyld.
Er ikke de to siste trinnene, i guerinteed_mikes svar, bare for Magento Cloud? Så vidt jeg vet, bruker de .magento.app.yml-filen for å konfigurere servermiljøet på sin egen hostingplattform.
Kommentarer
- Ja, dette ble brukt på en Magento Clooud-forekomst
- Ville ikke ' t er det bedre å oppdatere svaret ditt da? Andre brukere som ikke har skyutgaven, kan være forvirret av de siste trinnene. Eller er det noe jeg savnet innen t emnet hans som er begrenset til bare sky?
- Oppdatert. Merk – noen ganger er noen aspekter ikke kjent når jeg lærer noe nytt.
- Jeg hadde ikke ' t ment å være tøff eller noe, men bare la merke til det og tenkte at det kunne være avklart. Takk for at du oppdaterte! 🙂
Svar
Dette er løsningen jeg brukte for en Magento 2.2-handelsinstans som var vert på Adobe Cloud.
Opprett en ny modul eller legg til en eksisterende:
1 – Ny Cron Group
[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 – opprett ny crontab.xml eller legg til jobber i eksisterende:
[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 – legg til den nye cron-gruppen i .magento.app.yml
... crons: ... newcrongroupname: spec: "* * * * *" cmd: "php bin/magento cron:run --group="new_cron_group_name""
4 – fjern crontab.xml fra leverandørmodulen via distribusjonskroker i .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 ...
Min forståelse er at nr. 4 også kan gjøres via en oppdatering.
Legg igjen en kommentar