The invention discloses a data processing method and device based on unified task scheduling, the method includes: receiving the data to be processed, extracting the business primary key of the data to be processed, storing the data to be processed and the business primary key in the temporary table; the unified scheduling task extracts a number of data to be processed from the temporary table regularly, and stores a number of data to be processed corresponding to the unified scheduling task In the redis subscription queue, the unified scheduling task performs the following operations on the redis subscription queue until all the pending data in the redis subscription queue is processed: extract one piece of pending data from the redis subscription queue each time, and obtain the shared lock according to the business primary key; process the extracted pending data, release the shared lock after the processing is successful, and complete the processing The pending data is removed from the temporary table. By using the subscription queue and shared lock of redis, the invention avoids the data concurrent coverage problem and the repeated processing problem of single data under the high concurrent scenario.
【技术实现步骤摘要】
一种基于统一任务调度的数据处理方法及装置
本专利技术涉及任务调度处理
,特别涉及一种基于统一任务调度的数据处理方法及装置。
技术介绍
统一任务调度平台是目前各个科技公司解决多系统多集群环境下任务调度的首选方案,平台对各业务系统中的定时任务进行集中管理和调度,通常做法通过设置调用url及相关调用参数,触发器就可以快速的创建一个定时任务,调度过程参照图1所示,每次调用会根据负载均衡策略路由到一台服务器执行,单台服务器内通过线程池启用多线程处理,存在的问题也是显而易见的。综上所述,目前现行的统一调度处理方案存在两个比较大的问题:1、处理上限受单台服务器的性能的制约。要提升处理速度,需依靠启用更多的线程,单台服务器受内存和CPU的限制不可能无限制的启用线程,一旦线程启用过多,服务器的资源占用过大,还会直接影响该服务器上其他服务的请求处理;2、线程的并发处理数据一方面存在同业务主键的几条数据同时处理带来数据的覆盖问题,另一方面存在同一条数据被并发处理产生重复数据的问题。
技术实现思路
...
【技术保护点】
1.一种基于统一任务调度的数据处理方法,其特征在于,所述方法包括如下步骤:/n接收待处理数据,提取所述待处理数据的业务主键,将所述待处理数据以及所述业务主键存储于临时表中;/n统一调度任务定时从所述临时表中抽取若干待处理数据,将所述若干待处理数据存入与所述统一调度任务对应的redis订阅队列中;/n所述统一调度任务对所述redis订阅队列执行如下操作,直至所述redis订阅队列中的待处理数据全部处理完成:/n从所述redis订阅队列中每次抽取一条所述待处理数据,并根据所述业务主键获取共享锁;/n对所述抽取出的所述待处理数据进行处理,处理成功后释放所述共享锁,并将处理完成待处 ...
【技术特征摘要】
1.一种基于统一任务调度的数据处理方法,其特征在于,所述方法包括如下步骤:
接收待处理数据,提取所述待处理数据的业务主键,将所述待处理数据以及所述业务主键存储于临时表中;
统一调度任务定时从所述临时表中抽取若干待处理数据,将所述若干待处理数据存入与所述统一调度任务对应的redis订阅队列中;
所述统一调度任务对所述redis订阅队列执行如下操作,直至所述redis订阅队列中的待处理数据全部处理完成:
从所述redis订阅队列中每次抽取一条所述待处理数据,并根据所述业务主键获取共享锁;
对所述抽取出的所述待处理数据进行处理,处理成功后释放所述共享锁,并将处理完成待处理数据从所述临时表中移除。
2.根据权利要求1所述的基于统一任务调度的数据处理方法,其特征在于,所述统一调度任务定时从所述临时表中抽取若干待处理数据前,所述方法还包括:
根据所述待处理数据实际的量、处理时间以及服务器的个数创建至少一个统一调度任务。
3.根据权利要求1或2所述的基于统一任务调度的数据处理方法,其特征在于,所述临时表中包括数据处理状态,所述统一调度任务定时从所述临时表中抽取若干待处理数据后,所述方法还包括:
将抽取出的所述若干待处理数据在所述临时表中对应的数据处理状态更新为处理中。
4.根据权利要求3所述的基于统一任务调度的数据处理方法,其特征在于,所述方法还包括:
若所述若干待处理数据存入与所述统一调度任务对应的redis订阅队列中存储失败,则将所述若干待处理数据在所述临时表中对应的数据处理状态更新为待处理。
5.根据权利要求1或2所述的基于统一任务调度的数据处理方法,其特征在于,所述方法还包括:
若是根据所述业务主键获取共享锁失败,则对抽取出的所述待处理数据不做处理,并将抽取出的所述待处理数据直接退回至所述r...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。