Cron ジョブの設定
いくつかのCommerce機能には少なくとも 1 つの cron ジョブが必要で、これにより将来のアクティビティがスケジュールされます。 これらのアクティビティの一部のリストを次に示します。
- カタログ価格ルール
- ニュースレター
- Google サイトマップの生成
- 顧客アラート/通知(製品価格の変更、製品の再入荷)
- 再インデックス
- 民間販売(Adobe Commerceのみ)
- 通貨レートの自動更新
- すべてのCommerce メール (注文確認およびトランザクションを含む)
dev/tools/cron.sh
スクリプトが削除されたためです。UNIX システムは、特定のユーザーが実行するタスクを、 crontab これは cron デーモンに対し、「この時点でこのコマンドを実行する」という指示を実際にデーモンに伝える指示を含むファイルです。 各ユーザは独自の crontab を持ち、特定の crontab 内のコマンドは、その crontab を所有するユーザとして実行されます。
Web ブラウザーで cron を実行するには、以下を参照してください ブラウザーで実行する cron.php を保護する.
Commerce crontab を作成または削除する
この節では、Commerce crontab (Commerce cron ジョブの設定)を作成または削除する方法について説明します。
この crontab は、cron ジョブを実行するために使用される設定です。
Commerce アプリケーションは、異なる設定で実行できる cron タスクを使用します。 PHP のコマンドライン設定は、インデクサーのインデックス再作成、メールの生成、サイトマップの生成などを行う一般的な cron ジョブを制御します。
- インストールおよびアップグレード時の問題を回避するために、PHP コマンドライン設定と PHP web サーバープラグインの設定の両方に同じ PHP 設定を適用することを強くお勧めします。 詳しくは、を参照してください 必要な PHP 設定.
- マルチノードシステムでは、crontab は 1 つのノードでのみ実行できます。 これは、パフォーマンスやスケーラビリティに関連する理由で複数の web ノードを設定した場合にのみ適用されます。
Commerce crontab の作成
バージョン 2.2 以降、Commerceによって crontab が作成されます。 Commerce ファイルシステムの所有者用に設定された crontab にCommerce crontab を追加します。 つまり、他の拡張機能やアプリケーション用に crontab を既に設定している場合は、Commerce crontab を追加します。
Commerce crontab が内部にある #~ MAGENTO START
および #~ MAGENTO END
crontab のコメント。
Commerce crontab を作成するには:
-
としてログインするか、に切り替える ファイルシステム所有者.
-
Commerce インストールディレクトリに移動します。
-
次のコマンドを入力します。
code language-bash bin/magento cron:install [--force]
使用方法 --force
既存の crontab を書き換えます。
magento cron:install
内の既存の crontab を書き換えない#~ MAGENTO START
および#~ MAGENTO END
crontab のコメント。magento cron:install --force
は、Commerce コメント以外の cron ジョブには影響しません。
crontab を表示するには、ファイルシステムの所有者として次のコマンドを入力します。
crontab -l
次に例を示します。
#~ MAGENTO START c5f9e5ed71cceaabc4d4fd9b3e827a2b
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
#~ MAGENTO END c5f9e5ed71cceaabc4d4fd9b3e827a2b
update/cron.php
ファイルはCommerce 2.4.0 で削除されました。このファイルがインストール上に存在する場合は、安全に削除できます。update/cron.php
および bin/magento setup:cron:run
は crontab からも削除されますCommerce crontab を削除します。
Commerce アプリケーションをアンインストールする前にのみ、Commerce crontab を削除してください。
Commerce crontab を削除するには:
-
としてログインするか、に切り替える ファイルシステム所有者.
-
Commerce インストールディレクトリに移動します。
-
次のコマンドを入力します。
code language-bash bin/magento cron:remove
#~ MAGENTO START
および #~ MAGENTO END
crontab のコメント。コマンドラインから cron を実行します
コマンドオプション:
bin/magento cron:run [--group="<cron group name>"]
ここで、 --group
実行する cron グループを指定します(すべてのグループに対して cron を実行する場合はこのオプションを省略します)。
インデックス作成 cron ジョブを実行するには、次のように入力します。
bin/magento cron:run --group index
デフォルトの cron ジョブを実行するには、以下を入力します。
bin/magento cron:run --group default
カスタム cron ジョブとグループを設定するには、以下を参照してください。 カスタム cron ジョブと cron グループの設定.
scheduled_at
タスクごとの時間。ログ
すべて cron
ジョブ情報はから移動しました system.log
別の場所に cron.log
.
デフォルトでは、cron 情報はにあります。 <install_directory>/var/log/cron.log
.
Cron ジョブからのすべての例外は、次のユーザーが記録します。 \Magento\Cron\Observer\ProcessCronQueueObserver::execute
.
ログインしている他に cron.log
:
-
で失敗したジョブ
ERROR
およびMISSED
ステータスは「」に記録されます。<install_directory>/var/log/support_report.log
. -
を使用したジョブ
ERROR
ステータスは常に次のように記録されますCRITICAL
。対象:<install_directory>/var/log/exception.log
. -
を使用したジョブ
MISSED
ステータスのログ形式INFO
が含まれる<install_directory>/var/log/debug.log
ディレクトリ (開発者モードのみ)。
cron_schedule
Commerce データベース内のテーブル。 この表には、次のような cron ジョブの履歴が表示されます。- ジョブ ID とコード
- ステータス
- 作成日
- スケジュール日
- 実行日
- 完了日
SELECT * from cron_schedule;
.