タグ付けされた質問 「batch-operations」

3
バッチAPIは内部的にどのように機能しますか?
先日、migrateを使用してタイムアウトの問題に遭遇し、Batch APIが内部でどのように機能するのか疑問に思い始めました。 私がそれを理解する方法は、最も単純な形式で、値の配列(nidなど)とそれらの値を操作する関数を渡すことです。次に、バッチAPIは、完了するまで各リクエストでこれらの値の固定数を処理します。 バッチが実行されているとき、ページはAjaxリクエストを使用してバッチ操作の進行状況(%doneおよびmessages)を表示しているようです。リクエストが進行状況の更新を完了するまで待機し、その後すぐに次のリクエストを開始すると想定していますか? バッチリクエストのあるページが閉じている場合、バッチ処理は停止しますか?同じURLを再度開いたときに再起動しますか?移行モジュールは継続する場合がありますが、おそらくキューを使用していますか?

4
バッチAPI操作を高速化する方法は?
私は、サードパーティのcontribモジュールと自分の操作の両方でこれに遭遇しました。バッチ操作を高速化するさまざまな方法に興味がありますか? それらがノード(インポート/更新など)で動作し、10,000以上の範囲のノードのリストを解析していると仮定します(ただし、1500万行を処理する必要がありました。 ) drupals cron.phpジョブにアタッチして「ヘッドレス」を実行する方が速いですか?Drushを使用していますか?または、これは単にコードを開発できる効率的かつ迅速な解析の問題であり、外部の影響やバッチ固有の最適化のヒントはありません ... 現在、私は(多少の大まかな計算を使用して)24時間以上かかる可能性のある操作に遭遇しました... ありがとう!

2
PHPタイムアウトでのバッチの動作
Drupal 7のドキュメントでは、Batch APIを次のように紹介しています。 フォーム処理を複数のページリクエストに分散できるようにする関数。これにより、PHPタイムアウトが原因で処理が中断されないようにします... これは、Batchが開発者のタイムアウト関連の問題を処理することを意味すると解釈しました。 ただし、他の投稿(つまり、バッチAPIは内部でどのように機能するのですか?)は、別のユーザーが到着してBatchが再び呼び出されるのを待つ前に、Batchにどれだけの作業を行わせるかを開発者の責任で行うことを意味します。タイムアウト。 後者の場合は、バッチがジョブのタイムアウトを保証しないことを想定しています。Batchは保証を提供しますか?タイムアウトする前にBatchが処理できる量を推測するのは開発者の責任ですか? ありがとうございました!

2
バッチ処理を停止できますか
なんらかのエラーが発生した場合にバッチプロセスを強制的に停止する方法はありますか?特に、レコードをデータベースに保存することから始まるバッチがあります。後続の各バッチ操作は、データベースの挿入が正しく機能していることに依存しています。最初のバッチが失敗した場合、バッチを強制的に停止したいと思います。 バッチはこのように呼ばれます $batch = array( 'operations' => $operations, 'finished' => 'mymodule_batch_finished', 'title' => t('Merging records'), 'init_message' => t('Starting processing'), 'progress_message' => t('Processed @current out of @total.'), 'error_message' => t('Processing has encountered an error'), 'file' => drupal_get_path('module', 'mymodule') . '/forms/mymodule.inc' ); どこ$operationsに呼び出す関数の配列です。 各関数はPDOを使用してデータベースを更新します。$operations現在の操作でクエリが失敗した場合に後続のメソッドが呼び出されないようにする方法を理解しようとしています。 try { $sth = $dbh->prepare($sql); $sth->bindParam(':newid',$new_id,PDO::PARAM_INT); $sth->bindParam(':id',$id,PDO::PARAM_INT); if($sth->execute()) …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.