队列处理方法及装置的制造方法

文档序号:8543800阅读:296来源:国知局
队列处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及互联网领域,具体而言,涉及一种队列处理方法及装置。
【背景技术】
[0002]近年来,随着移动互联网的发展,互联网已经被广泛的应用于人们生活、学习、工作的各个角落。因此,在每时每刻,都有大量的数据在互联网上进行传递。
[0003]在需要对数据库中的表或者字段进行修改时,数据库程序为了保证数据的一致性,会对数据库中的表或者字段通过锁定(Locking)的方式进行控制。当有大量数据并发写入数据库时,就有可能会因系统资源不足、资源分配不当等原因发生数据库死锁的现象。一旦发生数据库死锁,就有可能导致进程永久堵塞,或者需要写入数据库的信息丢失。
[0004]针对现有技术中大量数据并发写入数据库,导致的数据库死锁的问题,目前尚未提出有效的解决方案。

【发明内容】

[0005]本发明的主要目的在于提供一种队列处理方法及装置,以解决现有技术中大量数据并发写入数据库,导致的数据库死锁的问题。
[0006]为了实现上述目的,根据本发明实施例的一个方面,提供了一种队列处理方法。该方法包括:接收多个消息数据,写入缓存队列;创建至少一个处理进程,处理进程用于处理消息数据;从缓存队列中读取预定数量的消息数据;将取预定数量的消息数据写入临时文件,其中,临时文件与处理进程相对应;通过处理进程处理临时文件中的消息数据。
[0007]进一步的,在处理进程中设置计数器,其中,通过处理进程处理临时文件中的消息数据包括:读取临时文件中的消息数据;通过处理进程对临时文件进行处理;当处理进程对临时文件处理完成后,删除临时文件,并对与处理进程对应的计数器做累加运算。
[0008]进一步的,在当处理进程对临时文件处理完成后,删除临时文件,并对与处理进程对应的计数器做累加运算之后,方法还包括:将计数器中的数值与预先设置的第一阈值进行比对;当计数器中的数值小于或等于第一阈值时,重复执行从缓存队列中读取预定数量的消息数据的步骤;当计数器中的数值大于第一阈值时,结束处理进程。
[0009]进一步的,当缓存队列至少为两个的情况下,接收消息数据,写入缓存队列包括:接收消息数据;将消息数据随机存储至一个缓存队列中,并判断消息数据是否存储成功;当消息数据存储失败时,将消息数据存储至另一个缓存队列中;其中,当消息数据存储失败的次数大于预先设置的第二阈值时,生成错误日志。
[0010]进一步的,在通过处理进程处理临时文件中的消息数据之后,方法还包括:对处理进程设置预定时长的休眠时间。
[0011]进一步的,在创建至少一个处理进程,处理进程用于处理消息数据之后,方法还包括:创建监控进程,监控进程用于监控处理进程;监控进程监控处理进程执行对临时文件中的消息数据进行处理。
[0012]进一步的,监控进程监控处理进程执行对临时文件中的消息数据进行处理包括:当处理进程执行结束时,监控进程检测是否存在与处理进程对应的临时文件;当存在与处理进程对应的临时文件时,监控进程读取在临时文件中记录对临时文件的处理次数;监控进程调用处理进程对临时文件进行处理。
[0013]为了实现上述目的,根据本发明实施例的另一方面,提供了一种队列处理装置,该装置包括:接收模块,用于接收多个消息数据,写入缓存队列;第一创建模块,用于创建至少一个处理进程,处理进程用于处理消息数据;读取模块,用于从缓存队列中读取预定数量的消息数据;写入模块,用于将取预定数量的消息数据写入临时文件,其中,临时文件与处理进程相对应;处理模块,用于通过处理进程处理临时文件中的消息数据。
[0014]进一步的,第二创建模块,用于创建监控进程,监控进程用于监控处理进程;监控模块,用于监控进程监控处理进程执行对临时文件中的消息数据进行处理。
[0015]进一步的,子监测模块,用于当处理进程执行结束时,监控进程检测是否存在与处理进程对应的临时文件;第一子处理模块,用于当存在与处理进程对应的临时文件时,监控进程读取在临时文件中记录对临时文件的处理次数;第二子处理模块,用于监控进程调用处理进程对临时文件进行处理。
[0016]根据发明实施例,通过接收多个消息数据,写入缓存队列;创建至少一个处理进程,处理进程用于处理消息数据;从缓存队列中读取预定数量的消息数据;将取预定数量的消息数据写入临时文件,其中,临时文件与处理进程相对应;通过处理进程处理临时文件中的消息数据,解决了现有技术大量数据并发写入数据库,导致的数据库死锁的问题。实现了把大量并发写入的消息数据转化为串行或者通过处理进程将消息数据并发异步写入数据库的效果。
【附图说明】
[0017]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0018]图1是根据本发明实施例一的队列处理方法的流程图;
[0019]图2是根据本发明实施例二的队列处理装置的结构示意图;
[0020]图3是根据本发明实施例二可选的队列处理装置的结构示意图;以及
[0021]图4是根据本发明实施例二可选的队列处理装置的监控模块的结构示意图。
【具体实施方式】
[0022]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0023]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0024]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0025]实施例1
[0026]本发明实施例提供了一种队列处理方法,图1是根据本发明实施例的队列处理方法的流程图,如图1所示,该方法包括步骤如下:
[0027]步骤SI I,接收多个消息数据,写入缓存队列。
[0028]步骤S13,创建至少一个处理进程,处理进程用于处理消息数据。
[0029]步骤S15,从缓存队列中读取预定数量的消息数据。
[0030]步骤S17,将取预定数量的消息数据写入临时文件,其中,临时文件与处理进程相对应。
[0031]步骤S19,通过处理进程处理临时文件中的消息数据。
[0032]通过上述步骤,将接收到的消息数据写入缓存队列,并将缓存队列中预订数量的消息数据写入与处理进程一一对应的临时文件,最后通过处理进程对消息数据进行处理。从而解决了大量数据并发写入数据库,导致的数据库死锁的问题,通过利用二级缓存机制,处理进程将消息数据并发异步写入数据库的效果。
[0033]作为一个可选实施例,在步骤Sll中,可以利用缓存系统,将接收到的消息数据以时间顺序进行保存。通过缓存系统,将大量并发写入的消息数据,转化为按照时间顺序进
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1