誰もが、magento cron_scheduleが正確に実行される方法を私に説明できますか?


7

magentoのcron.phpを実行すると、magentoのcron_scheduleテーブルにいくつかのジョブが作成されますか?magentoがこれらのジョブを正確に実行する方法を誰かに教えてもらえますか?つまり、ジョブステータスが保留中から成功にどのように変更されるかということです。Cron.phpはテーブルにジョブを挿入するだけでジョブを実行しません

回答:


16

cronの機能とMagentoについて知っておく必要のあるすべてを網羅しているMagentoCommerce Webサイトから直接入手できる以下の記事を読みたいと思います。

Magento-Wiki-Cronジョブを設定する方法

強調する:内部の仕組み

Magentoのcrontabメカニズムは、システムのcronジョブを使用して定期的にトリガーされます。呼び出しはcron.phpファイルで開始されます。

<?php
// initialize configuration and load event observers only from /crontab/ section
Mage::getConfig()->init()->loadEventObservers('crontab');

// initialize crontab event area
Mage::app()->addEventArea('crontab');

// dispatch 'default' event for observers specified in crontab configuration
Mage::dispatchEvent('default');

このシーケンスによりが呼び出されMage_Cron_Model_Observer→dispatch()、次のようになります。

  • スケジュールされたタスクを実行する
  • 必要に応じて将来のスケジュールされたタスクを生成する
  • スケジュールされたタスクの履歴をクリーンアップする

に基づいてジョブを実行する必要があるたびにタスクがスケジュールされます

<schedule><cron_expr>0 1 * * *</cron_expr></schedule>

式とcron_scheduleテーブルに格納されます。各レコードは、次のフィールドで構成されています。

  • schedule_id -スケジュールされたタスクの一意の識別子
  • job_code -構成からのジョブ識別子
  • status -のいずれか pending, running, success, missed, error
  • messages -ジョブによって実行されたメソッドによって報告されたカスタムテキスト
  • created_at -タスクが作成された日時
  • scheduled_at -タスクの実行が計画されている日付/時刻
  • executed_at -タスクが実際に実行された日付/時刻(実行前はnull)
  • finished_at -タスクの実行が終了した日付/時刻(実行前はnull)

    スケジュールが生成されると、statusに設定されているpendingcreated_atnow()し、scheduled_atターゲットの日付/時刻に。

保留中のスケジュールが実行されると、statusrunningおよびexecuted_atに設定されnow()ます。

スケジュールされたタスクが正常に完了statusするsuccessと、はおよびfinished_atに設定されnow()ます。

スケジュールされたタスクが例外をスローした場合、statusはエラーとfinished_atに設定されますnow()

タスクのステータスがある場合pendingscheduled_at設定された値「内で実行されていない場合不在」よりも古い、ステータスがに設定されていますmissed


Magentoが保存したドキュメントを急いで...
janw

@janwごめんなさい?
Moose

1
上記のリンクは壊れています(一般的なリダイレクト)。Magentoがこれらのリンクをすべて壊したのは嫌です。
janw 2016年

1
ええ、それは彼らのフォーラム情報と同じように動揺しています。とにかく、私は記事のほとんどを私の回答にコピーしたので、それはまだ比較的完全です:)
Moose
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.