Articles
magento2の新しいcronグループへのベンダーモジュールの移動
On 2月 15, 2021 by adminFirebearモジュールを使用して、デフォルトのcronグループで実行される製品および価格データをインポートしています。インポートにはかなりの時間/リソースがかかるため、Firebearcronを独自のグループに移動することをお勧めします。 Firebear crontab.xmlは現在、次のように設定されています。
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>
高レベルでは、次のようにする必要があります。 :1-新しいcronグループを作成します2-Firebearcrontabをオーバーライドして新しいグループで実行します
これを達成するためのプロセスに関するヘルプをいただければ幸いです。
回答
評判がないなどの理由で既存の投稿にコメントできないので、わかりやすくするためにこの方法でコメントします。
最後の2つのステップは、guerinteed_mikeの回答ではなく、Magento Cloudだけですか?私の知る限り、彼らは.magento.app.ymlファイルを使用して独自のホスティングプラットフォームでサーバー環境を構成しています。
コメント
- はい、これはMagentoClooudインスタンスで使用されました
- '答えを更新したほうがいいですか?クラウドエディションを持っていない他のユーザーは、最後の手順で混乱する可能性があります。クラウドのみに制限されている彼のトピック?
- 更新されました。注-何か新しいことを学ぶときに、いくつかの側面がわからないことがあります。
- 私は'厳しいことなどを意味していませんでしたが、気づいただけで、明確にした。更新していただきありがとうございます。 🙂
回答
これは、AdobeCloudでホストされているMagento2.2コマースインスタンスに使用したソリューションです。
新しいモジュールを作成するか、既存のモジュールに追加します:
1-新しい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-新しいcrontab.xmlを作成するか、既存のジョブを追加します。
[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-新しいcronグループを.magento.app.ymlに追加します
... crons: ... newcrongroupname: spec: "* * * * *" cmd: "php bin/magento cron:run --group="new_cron_group_name""
4-.app.magento.ymlのデプロイフックを介してベンダーモジュールからcrontab.xmlを削除します:
... 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 ...
私の理解では、#4はパッチを介して実行することもできます。
コメントを残す