web-dev-qa-db-ja.com

Drushバッチジョブ実行の最小限のエンドツーエンドの例

Drushでバッチジョブを実行しようとしています。 drushを使用したバッチジョブの処理 にはいくつかのドキュメントがありますが、それを理解することはできません。

実際のコードと、それを実行するためのCLI要件/手順を確認してください。Drushから呼び出されたときに、操作ごとに1回、「Hello world」などの簡単なものを出力します。

1
Letharion

私はdrush CLIコマンドを書きました。いくつかのBatch APIプロセスも作成しました。あなたが尋ねてきた個々のトピックごとに、たくさんのドキュメントがあります。

特にDrushを介してBatch APIを使用する理由がわかりません。バッチAPIの一部は、長いPHPプロセスでHTTPリクエストのタイムアウトを回避するために使用されます。コマンドラインからDrushを使用している場合、max_execution_time php.iniから本質的に心配する...

  • Queue API(およびバッチ)の使用方法 参加したDrupalCampLA2012から
    • slides の実際のリンクに移動します
  • A batch tutorial 2012年3月から過去に自分のBatchAPIスタッフを作成するときに参照しました(サイトのデータベースがダウンしていたため、Googleキャッシュページにリンクしました)

編集: Migrate ソースを調べて、drush cliからBatchを実行する方法を確認しましたか?

1
tenken

Drushコアのupdatedbコマンドを見てください。これはバッチシステムを使用しています。 CCKプロジェクトの一部であるDrupal 7 content_migrate Drushコマンドを確認することもできます。

Drushのバッチシステムを使用する主な理由は、各バッチを個別のコマンドラインプロセスで実行するためです。これにより、致命的なエラー(アップグレード/移行タイプのシステムを開発するときに非常に便利なため、可能な限り完了し、エラーに戻って確認することができます)、およびメモリを制限する機能が提供されます-タイムアウトは無制限でも可能ですphp.iniの無制限のメモリ、Drupal静的キャッシュおよびその他のものは、最終的にサーバーのすべてのメモリを使用します(私は過去に8GB以上を使用しました)。十分に複雑。

0
user16968