Verschieben eines Lieferantenmoduls in eine neue Cron-Gruppe in Magento 2
On Februar 15, 2021 by adminWir verwenden das Firebear-Modul, um Produkt- und Preisdaten zu importieren, die in der Standard-Cron-Gruppe ausgeführt werden. Der Import nimmt viel Zeit / Ressourcen in Anspruch, daher wurde empfohlen, den Firebear-Cron in eine eigene Gruppe zu verschieben. Die Firebear-Datei crontab.xml ist derzeit wie folgt eingerichtet:
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>
Auf einer hohen Ebene muss ich : 1 – Neue Cron-Gruppe erstellen 2 – Firebear-Crontab überschreiben, um in einer neuen Gruppe ausgeführt zu werden
Jede Hilfe bei diesem Prozess wird sehr geschätzt.
Antwort
Ich kann vorhandene Beiträge nicht kommentieren, weil mir der Ruf oder ähnliches fehlt. Deshalb werde ich dies aus Gründen der Klarheit auf diese Weise tun.
Sind die letzten beiden Schritte in der Antwort von guerinteed_mike nicht nur für Magento Cloud? Meines Wissens verwenden sie die Datei .magento.app.yml, um die Serverumgebung auf ihrer eigenen Hosting-Plattform zu konfigurieren.
Kommentare
- Ja, dies wurde für eine Magento Clooud-Instanz verwendet.
- Würde nicht ' Ist es dann besser, Ihre Antwort zu aktualisieren? Andere Benutzer, die nicht über die Cloud-Edition verfügen, sind möglicherweise durch die letzten Schritte verwirrt. Oder gibt es etwas, das ich in t verpasst habe? sein Thema, das nur auf die Cloud beschränkt ist?
- Aktualisiert. Hinweis – manchmal sind einige Aspekte nicht bekannt, wenn man etwas Neues lernt.
- Ich wollte ' nicht hart oder so sein, sondern habe es nur bemerkt und dachte, es könnte sein geklärt. Danke für das Update! 🙂
Antwort
Dies ist die Lösung, die ich für eine in Adobe Cloud gehostete Magento 2.2 Commerce-Instanz verwendet habe.
Erstellen Sie ein neues Modul oder fügen Sie es zu einem vorhandenen hinzu:
1 – Neue Cron-Gruppe
[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 – Erstellen Sie eine neue crontab.xml oder fügen Sie Jobs zu vorhandenen hinzu:
[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 – Fügen Sie die neue Cron-Gruppe zu .magento.app.yml
... crons: ... newcrongroupname: spec: "* * * * *" cmd: "php bin/magento cron:run --group="new_cron_group_name""
4 – Entfernen Sie die Datei crontab.xml aus dem Herstellermodul über Bereitstellungs-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 ...
Meines Wissens nach könnte # 4 auch über einen Patch erfolgen.
Schreibe einen Kommentar