ユーザーがアクションにフォームを送信したときにバックグラウンド プロセスを実行しようとしています。プロセスが開始され、10 分後にデータが更新されることを伝えます。しかし、私にはいくつかの問題があります。私のアクションでは、次のようになります。
public function actualizarLineasAction()
{
$this->view->titulo = $this->_helper->x->lang("Actualizar el número de líneas de todos los clientes");
if($this->getRequest()->isPost())
{
if($this->_getParam('start'))
{
$descriptorspec = array(
array('pipe', 'r'),
array('file', 'myfile.txt', 'a'),
array('pipe', 'w'),
);
$proc = proc_open("php ".APPLICATION_PATH."/../scripts/update_clientes_lineas.php > ".APPLICATION_PATH."/../scripts/update_lines.log", $descriptorspec, $pipes);
proc_close($proc);
$this->view->message = $this->_helper->x->__("El proceso empezó en unos minutos habrá terminado y los contadores de líneas de los clientes estarán actualizados");
}
}
}
スクリプトファイル(このスクリプトでは、検証とチェックを含む12500行の大きなファイルを解析してデータベースに挿入したい)テスト用の簡単なスクリプト:
<?php
//It is only for test
for ($index = 1; $index < 1800; $index++) {
$x = $index * 18;
sleep(10);
}
echo "El resultado ".$x;
?>
このスクリプトに init、define、botstrap などを実行すると、同じ結果が得られます (今はそれらなしで試しています)。
X-Powered-By: PHP/4.4.9
Content-type: text/html
<br />
<b>Parse error</b>: syntax error, unexpected T_OBJECT_OPERATOR in <b>/homez.636/innovaco/fenix/public/index.php</b> on line <b>9</b><br />
サーバー php のバージョンが心配でしたが、アプリケーションでは htaccess を介して 5_4 に設定されていますが、コマンド ラインでは実行できません。
それがこのエラーの問題ですか?そうでない場合は、何が起こっているのですか?
クライアントが応答を待たずにバックグラウンド プロセスを実行するための Zend Framework への最良の方法は何ですか?
助けていただければ幸いです。
どうもありがとうございました!
ご挨拶。