我目前正在尝试使用runaction来执行进程(尤其是长请求)而无需用户等待。所以我按照runactions的文档。它说以下应该有效。当操作仍然继续时,insert语句应该有效。
public function actionLongProcess(){
if(ERunActions::runBackground()){
$sql = <<<EOD
insert into public.test (value) VALUES ('hehe')
EOD;
Yii::app()->db->createCommand($sql)->execute();
}else{
ChromePhp::log('hello');
}
}
可悲的是,它没有,我不知道为什么,只有其他部分被执行。这里有点无能为力。
答案 0 :(得分:0)
此扩展是用于运行操作的帮助程序类。它使控制器动作可以在不同的上下文中重用。
功能
将控制器操作作为后台任务运行
配置cron作业
'触摸'远程/本地服务器上的网址。
运行预配置的batchjobs或php脚本
使用内置Http客户端进行简单的GET和POST请求(自v1.1起)
控制器操作的间隔过滤器(自v1.1起)
要求
使用Yii 1.1.7开发
使用'touchUrlExt'(见下文)时,您必须安装扩展程序 ehttpclient