当用户将表单发送到操作时,我正在尝试运行后台进程,并告诉他该进程已启动并在十分钟内更新数据。但我有一些麻烦。在我的行动中看起来像这样:
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's、define's 和 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 中执行后台进程而不让客户端等待响应的最佳方法是什么?
我会很感激任何帮助。
非常感谢!
问候。