自制数据库空洞率清理工具-C版-01-EasyClean-V1.0(支持南大通用数据库Gbase8a)

目录

一、环境信息

二、简述

三、支持功能

四、空洞率

五、工具流程图

六、安装包下载地址

七、参数介绍

1、命令模板

2、命令样例

3、参数表格

八、安装步骤

1、配置环境变量

2、生效环境变量

3、检验动态链接是否正常

九、运行效果


一、环境信息

名称
CPUIntel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz
操作系统CentOS Linux release 7.9.2009 (Core)
内存3G
逻辑核数2
Gbase8a版本8.6.2-R43.34.27468a27
EasyClean版本V1.0

二、简述

工作和兴趣相结合的产物,既能更好的完成工作,也能看看自己的学习情况如何,无论如何,大家一起加油。

三、支持功能

序号功能备注
1多进程执行任务
2空洞率清理
3自定义配置后续会细讲参数。
4SQL重试功能如果sql执行出错,会尝试3次。

四、空洞率

大家可以参考之前的博客《南大通用数据库-Gbase-8a-学习-33-空洞率查询与解决方法》。

五、工具流程图

1、管理者进程检查传入参数是否正确。

2、管理者进程启动会去Gbase8a中检索需要清理空洞率的表。

3、管理者进程获取环境变量和创建消息队列。

4、管理者进程创建多个执行者进程。

5、管理者进程向消息队列发送消息。

6、执行者进程检查传入参数是否正确。

7、执行者连接数据库和获取环境变量、连接消息队列。

8、执行者从消息队列中接收消息。

9、执行者进程操作数据库清理空洞率。

10、管理者进程发送完所有清理的表,向消息队列发送完成任务消息。

11、执行者进程接收到完成任务消息,清理申请的资源。

12、管理者进程回收所有执行者进程的PCB资源。

13、管理者进程关闭消息队列。

14、管理者进程清理申请的资源。

六、安装包下载地址

已经放到开头啦,欢迎大家测试使用。电脑端才可以看见安装包。

七、参数介绍

1、命令模板

[gbase@czg2 Exec]$ ./Manager 'DbHost;DbUser;DbPwd;DbName;DbPort;DbCharset;ChdProcessNum;TargetDb;VoidRate;ClearTabNum;'

2、命令样例

[gbase@czg2 Exec]$ ./Manager '192.168.142.12;czg;qwer1234;gbase;5258;utf8;3;zxj;0;2;'

3、参数表格

序号参数备注
1DbHost连接源端数据库IP。
2DbUser连接源端数据库用户。
3DbPwd连接源端数据库用户密码。
4DbName连接源端数据库。
5DbPort连接源端数据库端口号。
6DbCharset连接源端数据库的字符集。
7ChdProcessNum启动的子进程数。
8TargetDb需要清理空洞率的数据库。
9VoidRate空洞率到达此值时进行清理,1-100。
10ClearTabNum清理TargetDb下空洞率超过VoidRate的表的个数。如果是0,表示无限制。

八、安装步骤

大家可以看README的内容,其实是一样的。

下面的配置大家根据实际情况来,我这边只是给一个例子。

1、配置环境变量

/home/gbase/.bashrc中添加如下

export CLEAN_VOID_RATE_TOOL_HOME=/home/gbase/EasyClean/
export LD_LIBRARY_PATH=$CLEAN_VOID_RATE_TOOL_HOME/Libs:$LD_LIBRARY_PATH

2、生效环境变量

source /home/gbase/.bashrc

3、检验动态链接是否正常

[gbase@czg0 Exec]$ ldd Manager linux-vdso.so.1 =>  (0x00007ffe315b5000)libPublicFunction.so => /home/gbase/EasyClean//Libs/libPublicFunction.so (0x00007f54c1a1b000)libLog.so => /home/gbase/EasyClean//Libs/libLog.so (0x00007f54c1817000)libGbase8aOperate.so => /home/gbase/EasyClean//Libs/libGbase8aOperate.so (0x00007f54c160a000)libgbase.so.16 => /home/gbase/EasyClean//Libs/libgbase.so.16 (0x00007f54c114a000)libSqQueue.so => /home/gbase/EasyClean//Libs/libSqQueue.so (0x00007f54c0f45000)libDataConvertion.so => /home/gbase/EasyClean//Libs/libDataConvertion.so (0x00007f54c0d42000)libProcess.so => /home/gbase/EasyClean//Libs/libProcess.so (0x00007f54c0b3e000)libFileOperate.so => /home/gbase/EasyClean//Libs/libFileOperate.so (0x00007f54c0938000)libMyHashTable.so => /home/gbase/EasyClean//Libs/libMyHashTable.so (0x00007f54c0734000)libc.so.6 => /lib64/libc.so.6 (0x00007f54c0366000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f54c014a000)libdl.so.2 => /lib64/libdl.so.2 (0x00007f54bff46000)libm.so.6 => /lib64/libm.so.6 (0x00007f54bfc44000)/lib64/ld-linux-x86-64.so.2 (0x00007f54c1c1e000)[gbase@czg0 Exec]$ ldd Executor linux-vdso.so.1 =>  (0x00007ffddffde000)libPublicFunction.so => /home/gbase/EasyClean//Libs/libPublicFunction.so (0x00007f7563dff000)libLog.so => /home/gbase/EasyClean//Libs/libLog.so (0x00007f7563bfb000)libGbase8aOperate.so => /home/gbase/EasyClean//Libs/libGbase8aOperate.so (0x00007f75639ee000)libgbase.so.16 => /home/gbase/EasyClean//Libs/libgbase.so.16 (0x00007f756352e000)libSqQueue.so => /home/gbase/EasyClean//Libs/libSqQueue.so (0x00007f7563329000)libDataConvertion.so => /home/gbase/EasyClean//Libs/libDataConvertion.so (0x00007f7563126000)libProcess.so => /home/gbase/EasyClean//Libs/libProcess.so (0x00007f7562f22000)libFileOperate.so => /home/gbase/EasyClean//Libs/libFileOperate.so (0x00007f7562d1c000)libMyHashTable.so => /home/gbase/EasyClean//Libs/libMyHashTable.so (0x00007f7562b18000)libc.so.6 => /lib64/libc.so.6 (0x00007f756274a000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f756252e000)libdl.so.2 => /lib64/libdl.so.2 (0x00007f756232a000)libm.so.6 => /lib64/libm.so.6 (0x00007f7562028000)/lib64/ld-linux-x86-64.so.2 (0x00007f7564002000)

如果有动态库没有找到,就要看看环境变量是否配置正确或是否生效。

九、运行效果

[gbase@czg0 Exec]$ ./Manager '192.168.142.12;czg;qwer1234;gbase;5258;utf8;3;zxj;0;2;'
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Info ]-EasyClean-V1.0-Manager.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Init SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Init SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-InitInArgvSt       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Split Str To Queue : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MyStrToLong        : OK, Str : 5258, Base : 10, RetVal : 5258.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MyStrToLong        : OK, Str : 3, Base : 10, RetVal : 3.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MyStrToLong        : OK, Str : 2, Base : 10, RetVal : 2.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Check Input Arg    : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Connect Info       : OK , DbHost : '192.168.142.12', DbUser : 'czg', DbName : 'gbase', DbPort : 5258.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-client character   : utf8
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Init DqlResult     : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Sql Query          : SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'zxj'
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect -1 Rows.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Alias Name         : TABLE_NAME
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Column Name        : TABLE_NAME
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Alias Table Name   : TABLES
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Table Name         : 
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Db Name            : 
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Default Val        : (null)
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Define Column Len  : 192
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Max Column Len     : 24
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Alias Name Len     : 10
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Column Name Len    : 10
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Charset            : 33
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Flags              : 1        , Info : not null
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Type               : 253      , Info : VARCHAR
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Fetch DQL Data     : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Read Db All Table  : OK
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Clear SqQueue      : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Init DqlResult     : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Sql Query          : SELECT COUNT(*) FROM PERFORMANCE_SCHEMA.TABLES WHERE TABLE_SCHEMA='zxj' AND TABLE_NAME='a' AND DELET
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect -1 Rows.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Alias Name         : COUNT(*)
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Column Name        : 
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Alias Table Name   : 
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Table Name         : 
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Db Name            : 
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Default Val        : (null)
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Define Column Len  : 21
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Max Column Len     : 1
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Alias Name Len     : 8
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Column Name Len    : 0
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Charset            : 63
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Flags              : 32897    , Info : Unkown Flags!!!
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Type               : 8        , Info : BIGINT
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Fetch DQL Data     : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Destroy DqlResult  : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Enter SqQueue      : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Init DqlResult     : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Sql Query          : SELECT COUNT(*) FROM PERFORMANCE_SCHEMA.TABLES WHERE TABLE_SCHEMA='zxj' AND TABLE_NAME='alldbvoidrat
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect -1 Rows.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Alias Name         : COUNT(*)
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Column Name        : 
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Alias Table Name   : 
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Table Name         : 
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Db Name            : 
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Default Val        : (null)
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Define Column Len  : 21
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Max Column Len     : 1
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Alias Name Len     : 8
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Column Name Len    : 0
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Charset            : 63
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Flags              : 32897    , Info : Unkown Flags!!!
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Type               : 8        , Info : BIGINT
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Fetch DQL Data     : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Destroy DqlResult  : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Enter SqQueue      : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-ChkDbLvTabVoidRate : OK, DbName : zxj, ClearTabNums : 2, VoidRate : 0.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 2.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Get Os Env         : OK, OsEnvName : CLEAN_VOID_RATE_TOOL_HOME, RetVal : /home/gbase/EasyClean/.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-File2Key           : OK, RetKey : 26182.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MessageGet         : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MyFork             : OK, Pid : 4940.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Enter SqQueue      : OK.
2023-12-22 16:37:43-P[4940]-T[140294174734144]-[Debug]-MyFork             : OK, Pid : 0.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MyFork             : OK, Pid : 4941.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Enter SqQueue      : OK.
2023-12-22 16:37:43-P[4941]-T[140294174734144]-[Debug]-MyFork             : OK, Pid : 0.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MyFork             : OK, Pid : 4942.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Enter SqQueue      : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 3.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 3.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 3.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 3.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-SqQueue Data   :
Data               : [ 4940 ,4941 ,4942 ]
FrontIndex         : 0
RearIndex          : 3
SqQueueLen         : 3
SqQueueMaxLen      : 20
Flag               : INT_TYPE_FLAG
2023-12-22 16:37:43-P[4942]-T[140294174734144]-[Debug]-MyFork             : OK, Pid : 0.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Printf InArgvSt    :
SourceHost         : 192.168.142.12
SourceUser         : czg
SourcePwd          : qwer1234
SourceDbName       : gbase
SourcePort         : 5258
SourceCharset      : utf8
TargetDb           : zxj
VoidRate           : 0
ClearTabNum        : 2
ToolPath           : /home/gbase/EasyClean/
ExecutorPath       : /home/gbase/EasyClean/Exec/Executor
PublicStr          : /home/gbase/EasyClean/Exec/File2Key.Data
ChdProcessNum      : 3
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 2.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 2.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 2.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-SqQueue Data   :
Data               : [ 'a' ,'alldbvoidrate' ]
FrontIndex         : 0
RearIndex          : 2
SqQueueLen         : 2
SqQueueMaxLen      : 1024
Flag               : STRING_TYPE_FLAG
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 2.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Leave SqQueue      : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MessageSend        : OK, MsgSize :    1, MsgType : 1, MsgInfo : 'a'.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 1.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Leave SqQueue      : OK.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MessageSend        : OK, MsgSize :   13, MsgType : 1, MsgInfo : 'alldbvoidrate'.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 0.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MessageSend        : OK, MsgSize :    6, MsgType : 1, MsgInfo : 'Finish'.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MessageSend        : OK, MsgSize :    6, MsgType : 1, MsgInfo : 'Finish'.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-MessageSend        : OK, MsgSize :    6, MsgType : 1, MsgInfo : 'Finish'.
2023-12-22 16:37:43-P[4939]-T[140294174734144]-[Debug]-Leave SqQueue      : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Info ]-EasyClean-V1.0-Executor.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Info ]-EasyClean-V1.0-Executor.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Info ]-EasyClean-V1.0-Executor.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Init SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-InitInArgvSt       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Split Str To Queue : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-MyStrToLong        : OK, Str : 5258, Base : 10, RetVal : 5258.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-MyStrToLong        : OK, Str : 3, Base : 10, RetVal : 3.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-MyStrToLong        : OK, Str : 2, Base : 10, RetVal : 2.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Check Input Arg    : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Init SqQueue       : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Connect Info       : OK , DbHost : '192.168.142.12', DbUser : 'czg', DbName : 'gbase', DbPort : 5258.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-InitInArgvSt       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Split Str To Queue : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-MyStrToLong        : OK, Str : 5258, Base : 10, RetVal : 5258.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-MyStrToLong        : OK, Str : 3, Base : 10, RetVal : 3.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-MyStrToLong        : OK, Str : 2, Base : 10, RetVal : 2.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Check Input Arg    : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Connect Info       : OK , DbHost : '192.168.142.12', DbUser : 'czg', DbName : 'gbase', DbPort : 5258.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Init SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-InitInArgvSt       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Split Str To Queue : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-MyStrToLong        : OK, Str : 5258, Base : 10, RetVal : 5258.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-MyStrToLong        : OK, Str : 3, Base : 10, RetVal : 3.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Read SqQueue       : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-MyStrToLong        : OK, Str : 2, Base : 10, RetVal : 2.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Check Input Arg    : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-client character   : utf8
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Sql Query          : SET gcluster_lock_timeout = 5
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-8a Set Parameters  : OK, ParameterName : 'gcluster_lock_timeout', ParameterVal : '5'.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Get Os Env         : OK, OsEnvName : CLEAN_VOID_RATE_TOOL_HOME, RetVal : /home/gbase/EasyClean/.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-File2Key           : OK, RetKey : 26182.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-MessageGet         : OK.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Printf InArgvSt    :
SourceHost         : 192.168.142.12
SourceUser         : czg
SourcePwd          : qwer1234
SourceDbName       : gbase
SourcePort         : 5258
SourceCharset      : utf8
TargetDb           : zxj
VoidRate           : 0
ClearTabNum        : 2
ToolPath           : /home/gbase/EasyClean/
ExecutorPath       : 
PublicStr          : /home/gbase/EasyClean/Exec/File2Key.Data
ChdProcessNum      : 3
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-SqQueue Data   :
Data               : [ '192.168.142.12' ,'czg' ,'qwer1234' ,'gbase' ,'5258' ,'utf8' ,'3' ,'zxj' ,'0' ,'2' ]
FrontIndex         : 0
RearIndex          : 10
SqQueueLen         : 10
SqQueueMaxLen      : 1024
Flag               : STRING_TYPE_FLAG
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-MessageRcv         : OK, MsgSize :    1, MsgType : 1, MsgInfo : 'a'.
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Sql Query          : LOCK TABLE zxj.a WRITE
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Connect Info       : OK , DbHost : '192.168.142.12', DbUser : 'czg', DbName : 'gbase', DbPort : 5258.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-client character   : utf8
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Sql Query          : SET gcluster_lock_timeout = 5
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-8a Set Parameters  : OK, ParameterName : 'gcluster_lock_timeout', ParameterVal : '5'.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Get Os Env         : OK, OsEnvName : CLEAN_VOID_RATE_TOOL_HOME, RetVal : /home/gbase/EasyClean/.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-File2Key           : OK, RetKey : 26182.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-MessageGet         : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Printf InArgvSt    :
SourceHost         : 192.168.142.12
SourceUser         : czg
SourcePwd          : qwer1234
SourceDbName       : gbase
SourcePort         : 5258
SourceCharset      : utf8
TargetDb           : zxj
VoidRate           : 0
ClearTabNum        : 2
ToolPath           : /home/gbase/EasyClean/
ExecutorPath       : 
PublicStr          : /home/gbase/EasyClean/Exec/File2Key.Data
ChdProcessNum      : 3
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-SqQueue Data   :
Data               : [ '192.168.142.12' ,'czg' ,'qwer1234' ,'gbase' ,'5258' ,'utf8' ,'3' ,'zxj' ,'0' ,'2' ]
FrontIndex         : 0
RearIndex          : 10
SqQueueLen         : 10
SqQueueMaxLen      : 1024
Flag               : STRING_TYPE_FLAG
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-MessageRcv         : OK, MsgSize :   13, MsgType : 1, MsgInfo : 'alldbvoidrate'.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Sql Query          : LOCK TABLE zxj.alldbvoidrate WRITE
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-client character   : utf8
2023-12-22 16:37:43-P[4942]-T[140090744272704]-[Debug]-Sql Query          : CREATE TABLE zxj.a_COPY_TAB LIKE zxj.a
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Sql Query          : SET gcluster_lock_timeout = 5
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-8a Set Parameters  : OK, ParameterName : 'gcluster_lock_timeout', ParameterVal : '5'.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Get Os Env         : OK, OsEnvName : CLEAN_VOID_RATE_TOOL_HOME, RetVal : /home/gbase/EasyClean/.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-File2Key           : OK, RetKey : 26182.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-MessageGet         : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Printf InArgvSt    :
SourceHost         : 192.168.142.12
SourceUser         : czg
SourcePwd          : qwer1234
SourceDbName       : gbase
SourcePort         : 5258
SourceCharset      : utf8
TargetDb           : zxj
VoidRate           : 0
ClearTabNum        : 2
ToolPath           : /home/gbase/EasyClean/
ExecutorPath       : 
PublicStr          : /home/gbase/EasyClean/Exec/File2Key.Data
ChdProcessNum      : 3
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-GetSqQueueLen      : OK, SqQueueLen : 10.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-SqQueue Data   :
Data               : [ '192.168.142.12' ,'czg' ,'qwer1234' ,'gbase' ,'5258' ,'utf8' ,'3' ,'zxj' ,'0' ,'2' ]
FrontIndex         : 0
RearIndex          : 10
SqQueueLen         : 10
SqQueueMaxLen      : 1024
Flag               : STRING_TYPE_FLAG
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-MessageRcv         : OK, MsgSize :    6, MsgType : 1, MsgInfo : 'Finish'.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-Destroy SqQueue    : OK.
2023-12-22 16:37:43-P[4941]-T[139722938136384]-[Debug]-DestoryInArgvSt    : OK.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:43-P[4940]-T[139647257421632]-[Debug]-Sql Query          : CREATE TABLE zxj.alldbvoidrate_COPY_TAB LIKE zxj.alldbvoidrate
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 1 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Sql Query          : INSERT INTO zxj.alldbvoidrate_COPY_TAB SELECT * FROM  zxj.alldbvoidrate
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 1 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Sql Query          : INSERT INTO zxj.a_COPY_TAB SELECT * FROM  zxj.a
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Sql Query          : TRUNCATE TABLE zxj.alldbvoidrate
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Sql Query          : TRUNCATE TABLE zxj.a
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Sql Query          : INSERT INTO zxj.alldbvoidrate SELECT * FROM  zxj.alldbvoidrate_COPY_TAB
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Sql Query          : UNLOCK TABLES
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Sql Query          : INSERT INTO zxj.a SELECT * FROM  zxj.a_COPY_TAB
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Sql Query          : DROP TABLE zxj.alldbvoidrate_COPY_TAB
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Sql Query          : UNLOCK TABLES
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Sql Query          : DROP TABLE zxj.a_COPY_TAB
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Info ]-ClearTabVoidRate   : OK, DbName : zxj, TabName : alldbvoidrate.
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-MessageRcv         : OK, MsgSize :    6, MsgType : 1, MsgInfo : 'Finish'.
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-Destroy SqQueue    : OK.
2023-12-22 16:37:44-P[4940]-T[139647257421632]-[Debug]-DestoryInArgvSt    : OK.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-ChkProcExitStatus  : OK, Normal Termination, Pid : 4940, Exit Status : 0.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-MyWaitPid          : OK, RetPid : 4940.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-Leave SqQueue      : OK.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-ChkProcExitStatus  : OK, Normal Termination, Pid : 4941, Exit Status : 0.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-MyWaitPid          : OK, RetPid : 4941.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-Leave SqQueue      : OK.
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Execute Sql        : OK, Sql Elapsed Time 0 s, Affect 0 Rows.
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Info ]-ClearTabVoidRate   : OK, DbName : zxj, TabName : a.
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-MessageRcv         : OK, MsgSize :    6, MsgType : 1, MsgInfo : 'Finish'.
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-Destroy SqQueue    : OK.
2023-12-22 16:37:44-P[4942]-T[140090744272704]-[Debug]-DestoryInArgvSt    : OK.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-ChkProcExitStatus  : OK, Normal Termination, Pid : 4942, Exit Status : 0.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-MyWaitPid          : OK, RetPid : 4942.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-MessageCtl         : OK.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-Destroy DqlResult  : OK.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-Destroy SqQueue    : OK.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-DestoryInArgvSt    : OK.
2023-12-22 16:37:44-P[4939]-T[140294174734144]-[Debug]-Destroy SqQueue    : OK.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/222684.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣题目学习笔记(OC + Swift)19. 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 此题目为链表题,拿出我们的杀手锏,链表解题经典三把斧: 哑巴节点栈快慢指针 关于内存问题:由于Swift及…

R语言【cli】——通过cli_abort用 cli 格式的内容显示错误、警告或信息,内部调用cli_bullets和inline-makeup

cli_abort(message,...,call .envir,.envir parent.frame(),.frame .envir ) 先从那些不需要下大力气理解的参数入手: 参数【.envir】:进行万能表达式编译的环境。 参数【.frame】:抛出上下文。默认用于参数【.trace_bottom】&#xff…

【华为鸿蒙系统学习】- HarmonyOS4.0之App项目开发|自学篇

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 创建鸿蒙第一个App项目 项目创建 工程目录区 预览区 运行Hello World 基本工程目录 ws:工…

【Amazon 实验①】Amazon WAF功能增强之实验环境准备

文章目录 1. 实验介绍2. 实验环境准备 1. 实验介绍 在真实的网络空间中,攻击者会使用大量广泛分布的僵尸网络、肉机等发起对目标的攻击。 其来源分布一般比较分散,因此难以简单防范。 本实验联合使用有多种AWS服务:Cloudfront、 Lambdaedge…

『番外篇五』SwiftUI 进阶之如何动态获取任意视图的 tag 和 id 值

概览 在某些场景下,我们需要用代码动态去探查 SwiftUI 视图的信息。比如任意视图的 id 或 tag 值: 如上图所示:我们通过动态探查技术在运行时将 SwiftUI 特定视图的 tag 和 id 值显示在了屏幕上。 这是如何做到的呢? 在本篇博文,您将学到如下内容: 概览1. “如意如意,…

Linux基本内容学习

Linux 命令 文件命令 命令释义语法格式lslist,用于显示目录中文件及其属性信息ls [参数名] [文件名]cdchange directory,用于更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前…

测试工具Jmeter:界面介绍、核心选项说明、核心选项用途

本文章主要介绍Jmeter的界面布局,以及各个选项的功能和它们的用途。 JMeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。 1. Jmeter主界面 当我…

Unresolved plugin: ‘org.apache.maven.plugins‘解决报错

新建springboot项目报Unresolved plugin: ‘org.apache.maven.plugins:maven-surefire-plugin:3.1.2’ 缺什么插件 引入什么插件的依赖就行 <dependency><groupId>org.apache.maven.plugins</groupId><artifactId>maven-install-plugin</artifact…

docker数据卷数据卷容器

前言 今天调休在家&#xff0c;随便玩玩&#xff0c;简单做下学习记录 1. 数据卷特点 数据卷在容器启动时初始化&#xff0c;如果容器使用的镜像在挂载点包含了数据&#xff0c;这些数据会被拷贝到新初始化的数据卷中数据卷可以在容器之间共享和重用可以对数据卷里的内容直接…

重学设计模式-Iterator(迭代器模式)

Iterator迭代器模式 介绍&#xff1a; 迭代器模式是一种行为型设计模式&#xff0c;它允许你在不暴露集合底层表示&#xff08;并不知道集合底层使用何种方式对数据尽心存储&#xff09;的情况下遍历集合中的元素。 这种模式提供了一种方法&#xff0c;可以顺序访问一个聚合…

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot 起因&#xff1a;我接手tomcat-springmvc-hibernate项目&#xff0c;使用tomcat时问题不大。自从信创开始&#xff0c;部分市场使用国产中间件&#xff0c;例如第一次听说的宝兰德、东方通&#xff0c;还…

让AIGC成为你的智能外脑,助力你的工作和生活

人工智能成为智能外脑 在当前的科技浪潮中&#xff0c;人工智能技术正在以前所未有的速度改变着我们的生活和工作方式。其中&#xff0c;AIGC技术以其强大的潜力和广泛的应用前景&#xff0c;正在引领着这场革命。 AIGC技术是一种基于人工智能的生成式技术&#xff0c;它可以通…

光模块市场分析与发展趋势预测

光模块是光通信领域的重要组成部分&#xff0c;随着数字经济&#xff0c;大数据&#xff0c;云计算&#xff0c;人工智能等行业的兴起&#xff0c;光模块市场经历了快速发展&#xff0c;逐渐在数据中心、无线回传、电信传输等应用场景中得到广泛应用。本文将基于当前光模块全球…

[JS设计模式]Flyweight Pattern

Flyweight pattern 享元模式是一种结构化的设计模式&#xff0c;主要用于产生大量类似对象而内存又有限的场景。享元模式能节省内存。 假设一个国际化特大城市SZ&#xff1b;它有5个区&#xff0c;分别为nanshan、futian、luohu、baoan、longgang&#xff1b;每个区都有多个图…

STM32F4的DHT11初始化与实例分析

STM32—— DHT11 本文主要涉及STM32F4 的DHT11的使用以及相关时序的介绍&#xff0c;最后有工程下载地址。 文章目录 STM32—— DHT11一、 DHT11的介绍1.1 DHT11的经典电路 二、DHT11的通信2.1 DHT11的传输数据格式2.2 DHT11 通信分步解析 三、 DHT11 代码3.1 引脚图3.2 电路图…

设计师都在用的5个设计灵感网站,赶紧收藏~

设计没灵感&#xff0c;就上这5个网站&#xff0c;绝对能打开新世界大门&#xff0c;全世界设计师的分享、互交站&#xff0c;最优秀的设计作品都在这&#xff0c;赶紧收藏好了~ pinterest​&#xff08;梯子&#xff09; https://www.pinterest.es/ Pinterest是以瀑布流的方式…

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI+Vant 电影院订票管理系统 的设计与实现

一.项目介绍 基于SpringBootVue 电影院订票管理系统 分为前端和后端。 前端&#xff08;用户&#xff09;&#xff1a; 登录后支持查看首页、电影、影院和我的信息 支持查看正在热映和即将上映的电影信息 支持购票&#xff08;需选择影院座位&#xff09;、看过&#xff08;评论…

千帆 AppBuilder 初体验,不仅解决解决了我筛选简历的痛苦,更是让提效10倍!

文章目录 &#x1f31f; 前言&#x1f31f; 什么是百度智能云千帆 AppBuilder&#x1f31f; 百度智能云千帆 AppBuilder 初体验&#x1f31f; 利用千帆AppBuilder搭建简历小助手&#x1f31f; 让人眼前一亮的神兵利器 - 超级助理 &#x1f31f; 前言 前两天朋友 三掌柜 去北京…

3. BlazorSignalRApp 结合使用 ASP.NET Core SignalR 和 Blazor

参考&#xff1a;https://learn.microsoft.com/zh-cn/aspnet/core/blazor/tutorials/signalr-blazor?viewaspnetcore-8.0&tabsvisual-studio 1.创建新项目 BlazorSignalRApp 2.添加项目依赖项 依赖项&#xff1a;Microsoft.AspNetCore.SignalR.Client 方式1 管理解决方案…

[笔记]ByteBuffer垃圾回收

参考&#xff1a;https://blog.csdn.net/lom9357bye/article/details/133702169 public static void main(String[] args) throws Throwable {List<Object> list new ArrayList<>();Thread thread new Thread(() -> {ByteBuffer byteBuffer ByteBuffer.alloc…