web-dev-qa-db-ja.com

ドラッシュとバッチ

アイテムの配列を取得しました。各アイテムで、データの操作、データベースへの書き込みなどのプロセスが実行されます...

Drushスクリプトを実行すると(例:drush mycommand)、バッチプロセスを開始します。

$batch = dms_notification_mail_sendout_batch($nid);
batch_set($batch);
$batch =& batch_get();
$batch['progressive'] = FALSE;
drush_backend_batch_process();

ここで、なぜバッチプロセスを使用するのかと考えていました。何かメリットはありますか? Drushを使用しているので、PHPタイムアウトを考慮する必要はありません。

要約すると、PHPタイムアウトで考慮する必要がない場合でも、バッチプロセスはまだ便利ですか?

どうも!

1
mgoubert

drushでは、PHPタイムアウトを考慮する必要はありません。

それは誤った仮定です。確かに、PHP CLIのタイムアウトは通常かなり大きくなりますが、設定することができ、そうでないとは想定できません。

実行するはずのすべてのマシンを所有している場合、その仮定はスクリプトを作成した時点で機能する可能性がありますが、php.iniの1つの変更により、スクリプトが突然失敗する可能性があります。コードを書いてから1〜2年後、バッチ処理の使用をあきらめた場所を思い出せなくなります。

2
Mołot