本发明涉及计算机,尤其涉及一种数据处理的方法和装置。
背景技术:
1、在处理业务请求时,不同业务模块在不同线程上相互配合,由主线程根据多个业务模块的处理结果,生成业务请求的响应结果。例如,在即时通讯业务中,用户在线发起咨询,咨询界面模块等待连接模块与其建立连接,在连接建立完成后,读取数据库模块中的业务数据,同时通过文本传输模块,拉取云存储中的业务数据,最后将业务数据合并之后展示到咨询界面,为用户答疑解惑。通常使用锁机制来保证不同线程之间的线程安全,
2、在实现本发明的过程中,发明人发现现有技术至少存在如下问题:
3、频繁地加锁、解锁,导致数据处理效率较低,容易出现卡顿、延迟等情况,降低用户体验。
技术实现思路
1、有鉴于此,本发明实施例提供一种数据处理的方法和装置,能够保证线程安全,提高数据处理效率和准确性,提高用户体验。
2、为实现上述目的,根据本发明实施例的第一方面,提供一种数据处理的方法,包括:
3、利用封装线程生成与接收到的数据处理请求对应的多个数据处理任务,以及将数据处理任务加入执行线程中的任务队列;
4、唤醒执行线程,以利用执行线程依次执行任务队列中的每个数据处理任务;
5、根据多个数据处理任务的执行结果,生成与数据处理请求对应的响应结果。
6、可选地,将数据处理任务加入执行线程中的任务队列,包括:根据预先设置的配置信息,将每个封装线程生成的数据处理任务加入执行线程中的任务队列。
7、可选地,利用执行线程依次执行任务队列中的每个数据处理任务,包括:
8、重复如下步骤,直至符合预先设置的终止条件:将任务队列中排在首位的数据处理任务作为目标数据处理任务,利用执行线执行目标数据处理任务,将执行后的目标数据处理任务从任务队列中清除,使排在目标数据处理任务之后的数据处理任务成为任务队列中排在首位的数据处理任务;终止条件包括:任务队列中不存在数据处理任务。
9、可选地,本发明实施例的方法还包括:将已经执行过的目标数据处理任务作为历史数据处理任务;执行线程还用于,在执行目标数据处理任务之前,根据历史数据处理任务的执行结果,对目标数据处理任务进行更新。
10、可选地,利用封装线程生成与接收到的数据处理请求对应的多个数据处理任务,包括:
11、从预先设置的业务逻辑集中确定与数据处理请求对应的多个业务逻辑;
12、对数据处理请求进行解析,得到与数据处理请求对应的多个业务参数;
13、创建与多个业务逻辑数量相同的封装线程;
14、使用多个封装线程,将多个业务逻辑和多个业务参数异步封装为多个数据处理任务。
15、可选地,本发明实施例的方法还包括:在利用执行线程依次执行任务队列中的每个数据处理任务之后,判断是否存在未执行的数据处理任务;在不存在未执行的数据处理任务的情况下,对执行线程进行休眠。
16、可选地,本发明实施例的方法还包括:
17、响应于接收到逻辑更新请求,确定逻辑更新请求对应的目标业务逻辑;
18、将目标业务逻辑存储至所述业务逻辑集。
19、根据本发明实施例的第二方面,提供一种数据处理的装置,包括:
20、生成模块,用于利用封装线程生成与接收到的数据处理请求对应的多个数据处理任务,以及将数据处理任务加入执行线程中的任务队列;
21、执行模块,用于唤醒所述执行线程,以利用执行线程依次执行任务队列中的每个数据处理任务;
22、响应模块,用于根据所述多个数据处理任务的执行结果,生成所述数据处理请求对应的响应结果。
23、可选地,将数据处理任务加入执行线程中的任务队列,包括:根据预先设置的配置信息,将每个封装线程生成的数据处理任务加入执行线程中的任务队列。
24、可选地,利用执行线程依次执行任务队列中的每个数据处理任务,包括:
25、重复如下步骤,直至符合预先设置的终止条件:将任务队列中排在首位的数据处理任务作为目标数据处理任务,利用执行线执行目标数据处理任务,将执行后的目标数据处理任务从任务队列中清除,使排在目标数据处理任务之后的数据处理任务成为任务队列中排在首位的数据处理任务;终止条件包括:任务队列中不存在数据处理任务。
26、可选地,将已经执行过的目标数据处理任务作为历史数据处理任务;执行线程还用于,在执行目标数据处理任务之前,根据历史数据处理任务的执行结果,对目标数据处理任务进行更新。
27、可选地,利用封装线程生成与接收到的数据处理请求对应的多个数据处理任务,包括:
28、从预先设置的业务逻辑集中确定与数据处理请求对应的多个业务逻辑;
29、对数据处理请求进行解析,得到与数据处理请求对应的多个业务参数;
30、创建与多个业务逻辑数量相同的封装线程;
31、使用多个封装线程,将多个业务逻辑和多个业务参数异步封装为多个数据处理任务。
32、可选地,本发明实施例的装置还包括:判定模块,用于在利用执行线程依次执行任务队列中的每个数据处理任务之后,判断是否存在未执行的数据处理任务;在不存在未执行的数据处理任务的情况下,对执行线程进行休眠。
33、可选地,所述装置还包括:
34、获取模块,用于响应于接收到逻辑更新请求,确定逻辑更新请求对应的目标业务逻辑;
35、存储模块,用于将目标业务逻辑存储至所述业务逻辑集。
36、根据本发明实施例的第三方面,提供一种电子设备,包括:
37、一个或多个处理器;
38、存储装置,用于存储一个或多个程序,
39、当一个或多个程序被一个或多个处理器执行时,一个或多个处理器实现上述任一实施例的方法。
40、根据本发明实施例的第四方面,提供一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现上述任一实施例的方法。
41、根据本发明实施例的第五方面,提供一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述任一实施例的方法。
42、上述发明中的一个实施例具有如下优点或有益效果:利用多个封装线程分别生成与数据处理请求对应的多个数据处理任务,能够降低用于生成不同数据处理任务的封装线程之间的耦合性,保证封装线程安全,提高数据处理效率和准确性,提高用户体验;将多个数据处理任务加入执行线程中的任务队列、并唤醒单独的执行线程依次执行任务队列中的各个数据处理任务,能够在不使用锁机制的情况下,保证线程安全,降低研发成本和维护成本,节省系统资源;将多个数据处理任务存储至任务队列中,能够明确数据处理任务的执行顺序,提高数据处理任务的执行效率;在执行数据处理任务之后,对其进行清理,能够节省系统资源,避免重复处理相同的数据处理任务,提高数据处理任务的准确性;在执行数据处理任务的过程中,根据执行结果更新之后的数据处理任务,能够灵活地执行数据处理任务,满足个性化的数据处理需求;;业务逻辑集中的业务逻辑是可配置的,能够更灵活地执行数据处理任务,提高数据处理的可扩展性。
43、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
1.一种数据处理的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,将所述数据处理任务加入执行线程中的任务队列,包括:根据预先设置的配置信息,将每个所述封装线程生成的数据处理任务加入执行线程中的任务队列。
3.根据权利要求2所述的方法,其特征在于,利用所述执行线程依次执行所述任务队列中的每个数据处理任务,包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:将已经执行过的目标数据处理任务作为历史数据处理任务;所述执行线程还用于,在执行所述目标数据处理任务之前,根据所述历史数据处理任务的执行结果,对所述目标数据处理任务进行更新。
5.根据权利要求1所述的方法,其特征在于,利用封装线程生成与接收到的数据处理请求对应的多个数据处理任务,包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
8.一种数据处理的装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-7中任一所述的方法。
