优化set_node_data以节点的type作为依据批量插入PG
This commit is contained in:
@@ -90,7 +90,8 @@ class EDataCapture {
|
||||
$task_connection->connect();
|
||||
}
|
||||
|
||||
$this -> data[$row -> code][] = [
|
||||
$this -> data[$code_type[$row -> code]['type']][] = [
|
||||
'code' => $row -> code,
|
||||
'value' => $row -> value,
|
||||
'device_code' => $row -> device_code,
|
||||
'parent_device_code' => $row -> parent_device_code ?? NULL,
|
||||
@@ -102,19 +103,18 @@ class EDataCapture {
|
||||
}
|
||||
|
||||
function set_node_data() {
|
||||
pg_query($this -> dbconn, "BEGIN");
|
||||
foreach ($this -> data as $code => $value) {
|
||||
foreach ($this -> data as $type => $value) {
|
||||
foreach (array_chunk($value, 6710885, true) as $chunk) {
|
||||
$sql_head = sprintf(
|
||||
'INSERT INTO "hf_mes_scada_data_capture_node_data_%s" (code, v_%s, device_code, batch)
|
||||
VALUES',
|
||||
$this -> working_subclass,
|
||||
$this -> code_type[$code]
|
||||
$type
|
||||
);
|
||||
foreach ($chunk as $row) {
|
||||
$sql_values[] = sprintf(
|
||||
"('%s', '%s', '%s', '%s')",
|
||||
$code,
|
||||
$row['code'],
|
||||
$row['value'] === false ? 'f' : $row['value'],
|
||||
$row['device_code'],
|
||||
$row['parent_device_code'] ?? NULL,
|
||||
@@ -127,14 +127,7 @@ class EDataCapture {
|
||||
unset($chunk);
|
||||
}
|
||||
unset($code, $value);
|
||||
|
||||
if (in_array(false, $res)) {
|
||||
pg_query($this -> dbconn, "ROLLBACK");
|
||||
return false;
|
||||
} else {
|
||||
pg_query($this -> dbconn, "COMMIT");
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function get_node_data() {
|
||||
|
||||
Reference in New Issue
Block a user