Movendo um módulo de fornecedor para um novo grupo cron no magento 2
On Fevereiro 15, 2021 by adminEstamos utilizando o módulo Firebear para importar dados de produtos e preços que são executados no grupo cron padrão. A importação leva um pouco de tempo / recursos, por isso foi recomendado mover o cron Firebear para seu próprio grupo. O Firebear crontab.xml está configurado da seguinte forma:
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>
Em um alto nível, vou precisar : 1 – criar um novo grupo cron 2 – substituir o crontab Firebear para executar em um novo grupo
Qualquer ajuda no processo para realizar isso será muito apreciada.
Resposta
Não posso comentar sobre as postagens existentes porque estou perdendo reputação ou algo parecido, então farei dessa forma por uma questão de clareza.
Não são os últimos 2 passos, na resposta do guerinteed_mike, apenas para Magento Cloud? Pelo que sei, eles usam o arquivo .magento.app.yml para configurar o ambiente de servidor em sua própria plataforma de hospedagem.
Comentários
- Sim, isso foi usado em uma instância do Magento Clooud
- Wouldn ' então é melhor atualizar sua resposta? Outros usuários que não têm a edição na nuvem podem ficar confusos com as últimas etapas. Ou há algo que perdi dentro de t seu tópico que é restrito apenas à nuvem?
- Atualizado. Observação – às vezes alguns aspectos não são conhecidos quando se aprende algo novo.
- Eu não ' quis dizer ser severo ou qualquer coisa, mas apenas percebi e pensei que poderia ser esclarecido. Obrigado por atualizar! 🙂
Resposta
Esta é a solução que usei para uma instância de comércio Magento 2.2 hospedada no Adobe Cloud.
Crie um novo módulo ou adicione a um existente:
1 – Novo Grupo 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 – crie um novo crontab.xml ou adicione trabalhos aos existentes:
[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 – adicione o novo grupo cron a .magento.app.yml
... crons: ... newcrongroupname: spec: "* * * * *" cmd: "php bin/magento cron:run --group="new_cron_group_name""
4 – remova o crontab.xml do módulo do fornecedor por meio de ganchos de implantação em .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 ...
Meu entendimento é que o nº 4 também pode ser feito por meio de um patch.
Deixe uma resposta