TbSchedule的SingleTask使用测试

来源:互联网 发布:房地产运营知乎 编辑:程序博客网 时间:2024/05/17 04:04
测试时间20170309

总结:
最大线程组数2:会产生两个线程组,同时执行selectTask,但,两线程组selectTask查询的记录各不相同。总和为10。
线程数3:单个线程组内,产生3个线程,其中一个线程用于selectTask,之后3个线程一起执行execute。两个线程组,分别独立如此。
任务项2:单个线程组内,拆分2个线程组拆分后的数据。

现象:3个线程组,2个任务项,只会有2个线程组工作。
任务项数量小于线程组数量时:线程组会只有任务项数量个线程组进行取数。
这样设计是使线程组的启停依赖于任务项,从而实现线程组取数时,不同任务项数据之间的各不相同的隔离。

现象:2个线程组,6个任务项,只会有2个线程组工作。
猜测该种情况下,2个线程组会随机处理给到的任务项,但同时,只会给两个任务项。

fentchNum:指的是多线程组,所有任务项取数据之和是该数字。

两个参数:

第一个表示一个线程组一次查询取不到数据,则该线程组休眠30s,之后再进行取数;
第二个表示一个线程组一次查询取到数据开始执行业务,所有本次查询的数据执行完之后,休眠5s之后,该线程组再进行取数。


存在问题:
多任务项时,会发生某任务项一直无法启动扫描;
多线程组或单线程组多线程时,注意schedule调取service时,数据库链接是否够用;同时服务器内存是否够用;
多线程组处理数据时,在一次处理完数据后,要设置休眠时间,不然会导致上次未处理完的业务数据,又再次被取到;


tbschedule用法测试:(5条样本数据)(selectTask使用mod行号取值)
最大线程组数线程数任务项selectTask线程execute线程说明11111selectTask产生size为10集合,execute单线程循环该集合11211selectTask产生size为4集合,execute单线程循环该集合1313之中13 1323之中13 21111同1112122对应2selectTask两线程产生size和为10集合,execute单线程循环该集合231   232         
111&&211:

131:

132:

112:
212:
231:
232:

0 0
原创粉丝点击