我目前正在尝试使用runaction来执行进程(尤其是长请求),而不需要用户等待。所以我遵循了runactions的文档。它说下面应该有效。插入语句应该在操作仍在进行时起作用。
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');
}
}
遗憾的是,它没有,我也不知道为什么,只有其他部分被执行了。这里有点无知。
此扩展是用于运行操作的辅助类。它使控制器操作在不同的上下文中可重复使用。
功能
将控制器操作作为后台任务运行
配置cron作业
远程/本地服务器上的"触摸"URL。
运行预配置的批处理作业或php脚本
使用内置Http客户端进行简单的GET和POST请求(自v1.1起)
控制器动作的间隔过滤器(自v1.1起)
要求
使用Yii 1.1.7 开发
使用"touchUrlExt"(见下文)时,必须安装扩展ehttpclient