fetch('exp_task_'.self::$__task_id.'_status',$task_status); if ($task_status == 'del'){ return true; } $exportObj = app::get(self::$__app)->model(self::$__model); //定义model调用的字符类 $exportObj->charset = kernel::single('base_charset'); //根据当前导出对象获取导出数据,判断是否是自定义方法 $data = array(); //队列导出数据时,根据用户op_id判断权限。 kernel::single('desktop_user')->setVirtualLogin(self::$__op_id); $exportObj->fgetlist_csv($data, self::$__filter, 0); //具体数据存储storage if(isset($data['content']['main']) && is_array($data['content']['main'])){ if(count($data['content']['main']) > 500){ //数据分片总数 self::$__sheet_sum = ceil(count($data['content']['main'])/self::$__data_source_cnf['splitnums']); $tmp_arrs = array_chunk($data['content']['main'], self::$__data_source_cnf['splitnums']); //error_log(var_export($tmp_arrs,true),3,'/www/tmparr.log'); if($tmp_arrs){ //当前数据分片 $curr_sum = 1; foreach ($tmp_arrs as $key => $tmp_arr) { //合并数据 $main_content = ''; foreach($tmp_arr as $v) { $main_content .= $v."\n"; } //总数据含标题小于500条,一次性临时保存 $cacheLib->store('exp_body_main_'.self::$__task_id.'_'.$curr_sum,$main_content,self::$__ttl); $curr_sum++; } } }else{ $main_content = ''; foreach($data['content']['main'] as $v) { $main_content .= $v."\n"; } //总数据含标题小于500条,一次性临时保存 $cacheLib->store('exp_body_main_'.self::$__task_id.'_1',$main_content,self::$__ttl); } } //取总记录数 //如果定义了就取定义的了,没有就count数组取 $records = isset($data['records']) ? $data['records'] : count($data['content']['main']); //判断是否所有分片任务都完成,完成往归档任务队列添加任务 $push_params = array( 'data' => array( 'task_id' => self::$__task_id, 'sheet_sum' => self::$__sheet_sum, 'records' => $records, 'has_detail' => 2, 'task_type' => 'createfile' ), 'url' => kernel::openapi_url('openapi.autotask','service') ); kernel::single('taskmgr_interface_connecter')->push($push_params); return true; } }