Magento 2 cronが機能しない


7
*/1 * * * * www-data php /var/www/magento-2/bin/magento cron:run
*/1 * * * * www-data php /var/www/magento-2/update/cron.php
*/1 * * * * www-data php /var/www/magento-2/bin/magento setup:cron:run

これはcronジョブ設定と私のcrontab.xmlです

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
  <group id="default">
    <job name="send_call" instance="Custom\Module\Model\Observer\Event" method="sendEmail">
      <schedule>*/5 * * * *</schedule>
    </job>
  </group>
</config>

何度もチェックしますが、cronが機能しません


とエラーメッセージ?
MagenX 2016年

エラーはありませんが、sendEmail関数内にログを書き込みましたが、ログが空であることがわかりました
Yadav王子

指定したメソッドはsenMailです。あれは正しいですか?sendMailを使用しますか?
2016年

私がここで間違っしかしので、正確な答えを与えてください書き込みであるコードに書いた
王子Yadavが

1. php /var/www/magento-2/bin/magento setup:cron:run手動で実行しようとしましたか?2. crontab.xmlはどこにありますか?
BuskaMuza

回答:



5

でキャッシュをフラッシュしてもphp bin/magento cache:flushうまくいかない場合は、cron_schedule表を確認してジョブコードを探してください。オブザーバーの何らかのエラーが原因で、インスタンスの1つが「実行中」の状態のままになっている可能性があります。その場合は、cron_scheduleテーブルからその行を削除して、cronを再実行してください。


ありがとう!これは私の場合の問題でした。モジュール内で名前が変更されたcronjobがほとんどなかったため、「コールバックが見つかりません」というメッセージが表示されて失敗しました
Kumar A.

「コールバックが見つかりませんでした」という同じエラーメッセージが表示されます。モジュールでcronjob名を確認しました。毎回同じ名前ですが、このエラーメッセージがまだ表示されます。この問題を解決する解決策はありますか?
Ronak Parmar 2018

@RonakParmar crontabのxmlファイルで<job>タグを確認します。「インスタンス」と「メソッド」の両方のプロパティを指定し、有効にする必要があります。「インスタンス」プロパティは、実行される関数が存在するファイルを指している必要があり、「メソッド」プロパティは、そのファイル内で実行される関数の名前でなければなりません。
Daniel Kratohvil

@DanielKratohvil助けてくれてありがとう。問題を修正しました。Magentoコアモジュールのcrontab.xmlを使用し、カスタムモジュールに従って必要な変更を行いました。現在、私のcronジョブは正常に動作しています。ありがとうございました。
Ronak Parmar 2018

ありがとう!! これは私にとっては
うまくいき

2

Host Serverで cronサービス再起動する必要があると思います

RHEL / Fedora / CentOS / Scientific Linuxユーザー向けのコマンド

Redhat(RHEL)/ Fedora / CentOS Linuxを使用している場合は、次のコマンドを使用します。

タスク:cronサービスを開始する

cronサービスを開始するには、以下を使用します。

# /etc/init.d/crond start

またはRHEL / CentOS 5.x / 6.xユーザー:

# service crond start

またはRHEL / Centos Linux 7.xユーザー:

# systemctl start crond.service

タスク:cronサービスを停止する

cronサービスを停止するには、次のコマンドを使用します。

# /etc/init.d/crond stop

またはRHEL / CentOS 5.x / 6.xユーザー:

# service crond stop

またはRHEL / Centos Linux 7.xユーザー:

# systemctl stop crond.service

タスク:cronサービスを再起動します

cronサービスを再起動するには、次のコマンドを使用します。

# /etc/init.d/crond restart

またはRHEL / CentOS 5.x / 6.xユーザー:

# service crond restart

またはRHEL / Centos Linux 7.xユーザー:

# systemctl restart crond.service

0

IDが「default」のグループは、15分間隔で機能します。「インデックス」に置き換えてみてください:

...
 <group id="index">
...

0

「which php」コマンドを使用して、サーバーで実行されている正確なphpパスを確認できます。そのphpパスを使用して、rootユーザーではなく、magentoに使用されるSSHユーザーによって構成します。

Magentoのインストールに移動して実行します

crontab -e

* * * * * path_to_php var/www/html/***.com/v2/bin/magento cron:run
* * * * * path_to_php var/www/html/***.com/v2/update/cron.php
* * * * * path_to_php var/www/html/***.com/v2/bin/magento setup:cron:run
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.