コード例 #1
0
ファイル: main.php プロジェクト: dormscript/dataTransfer
 public function onTask($serv, $task_id, $from_id, $param)
 {
     //处理数据表tablename中ID>=$startid && $ID<$startid+100的记录
     list($tablename, $startid, $endid, $taskid) = $param;
     if ($tablename == "delDb" && ($startid = -1 && ($endid = -1))) {
         //删除mysql连接请求
         \Data\Library\Db::delDbPool($taskid);
         return false;
     }
     echo "\n OnTask: {$taskid} \t {$tablename} \t {$startid} - {$endid} ";
     $obj = new Library\SwitchData();
     $rs = $obj->run($tablename, $startid, $endid, $taskid, $serv);
     while (!$rs) {
         //执行出错时,一直重试。关闭数据库连接,sleep 5秒
         \Data\Library\Db::delDbPool($taskid);
         echo "\n 处理出错,重新连接mysql \n";
         sleep(5);
         $rs = $obj->run($tablename, $startid, $endid, $taskid);
     }
     if ($startid + 1 == $endid) {
         //增量更新,处理完成后不再重新处理
         return array($taskid);
     }
     return $taskid;
 }
コード例 #2
0
 /**
  * 将数据写到目标数据库
  * @param  [type] $newData [description]
  * @return [type]          [description]
  */
 public function writeRs($newData)
 {
     if (empty($newData)) {
         return '';
     }
     $fieldarray = array_keys(current($newData));
     $fields = implode(",", $fieldarray);
     $sql = "replace into {$this->modelObj->descTable} " . "(" . $fields . ") VALUES";
     foreach ($newData as $line) {
         $sql .= "\n(";
         foreach ($line as $field) {
             $sql .= "'" . addslashes($field) . "',";
         }
         $sql = substr($sql, 0, -1) . "),";
     }
     $sql = substr($sql, 0, -1);
     $rs = \Data\Library\Db::exeSql($this->modelObj->writeDbName, $sql, $this->taskid);
 }