Flytta en leverantörsmodul till ny cron-grupp i magento 2
On februari 15, 2021 by adminVi använder Firebear-modulen för att importera produkt- och prisdata som körs i standardcrongruppen. Importen tar en hel del tid / resurser så det rekommenderades att flytta Firebear cron till sin egen grupp. Firebear crontab.xml är för närvarande inställt så:
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å en hög nivå måste jag : 1 – skapa ny cron-grupp 2 – åsidosätta Firebear crontab för att köras i ny grupp
All hjälp i processen för att åstadkomma detta kommer att uppskattas mycket.
Svar
Jag kan inte kommentera befintliga inlägg eftersom jag saknar rykte eller något liknande, så jag kommer att göra det på detta sätt för tydlighetens skull.
Är inte de sista 2 stegen, i guerinteed_mikes svar, bara för Magento Cloud? Enligt min vetskap använder de filen .magento.app.yml för att konfigurera servermiljön på sin egen webbplattform.
Kommentarer
- Ja, detta användes i en Magento Clooud-instans
- Skulle ' t är det bättre att uppdatera ditt svar då? Andra användare som inte har molnutgåvan kan vara förvirrade av de sista stegen. Eller är det något jag saknade inom t hans ämne som endast är begränsat till moln?
- Uppdaterat. Obs! Ibland är vissa aspekter inte kända när jag lär mig något nytt.
- Jag tänkte inte ' tänkte vara hård eller någonting men märkte det och tänkte att det kunde vara klargjorts. Tack för att du uppdaterade! 🙂
Svar
Detta är den lösning jag använde för en Magento 2.2-handelsinstans som finns på Adobe Cloud.
Skapa en ny modul eller lägg till en befintlig:
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 – skapa nytt crontab.xml eller lägg till jobb till befintliga:
[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 – lägg till den nya cron-gruppen till .magento.app.yml
... crons: ... newcrongroupname: spec: "* * * * *" cmd: "php bin/magento cron:run --group="new_cron_group_name""
4 – ta bort crontab.xml från leverantörsmodulen via distribuera krokar 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 förståelse är att nummer 4 också kan göras via en korrigeringsfil.
Lämna ett svar