CN110223203A - 一种学生时间优先选课高并发处理方法及系统 - Google Patents
一种学生时间优先选课高并发处理方法及系统 Download PDFInfo
- Publication number
- CN110223203A CN110223203A CN201910343246.1A CN201910343246A CN110223203A CN 110223203 A CN110223203 A CN 110223203A CN 201910343246 A CN201910343246 A CN 201910343246A CN 110223203 A CN110223203 A CN 110223203A
- Authority
- CN
- China
- Prior art keywords
- curricula
- variable
- request
- student
- caching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
- G06Q50/205—Education administration or guidance
Abstract
本发明提供一种学生时间优先选课高并发处理方法,包括学生端提交选课请求给队列集群,队列集群返回一个请求标识给提交请求的学生端;队列集群根据设置的分组,让选课请求进入对应的分组队列;消费集群从队列集群中拉取选课请求,对选课请求进行处理,并将处理后的选课结果写入到数据库中,同时更新至第一缓存;学生端根据请求标识轮询异步到第一缓存中查询选课结果。本发明还提供一种方法所对应的系统。本发明优点在于:可最大限度的保证学生集中选课时系统的稳定性、高吞吐、高负载、高并发,提高学生端的使用体验,为校园信息化建设做进一步的探索。
Description
技术领域
本发明涉及计算机通信领域,特别涉及一种学生时间优先选课高并发处理方法及系统。
背景技术
随着校园IT信息化建设的发展,校园师生互动早已从传统的线下模式逐渐演变到线上的互联网模式了,随着校园IT信息化程度的不断推进,学校对信息化系统的稳定性、用户体验性也提出了更高的要求。
学生校本选课是学校信息化系统建设中较为常见的一类系统,由于学生选课存在时间集中性,学校传统的做法是将学生按照某个规则分批次、分时段安排到校园机房进行选课,该模式对师生的秩序要求较高,学生必须按规则有序地进行选课,整个选课过程体验较差。
随着互联网的普及,家长方一般都具备了电脑、网络设备,学生在家便可自助完成选课任务,目前各校也在力推该选课模式,以解决集中选课存在的诸多缺点。由于选课存在时间集中性,加上学生在家自助选课,选课流量并发对校园服务器造成较大的峰洪冲击,大面积的选课并发请求将导致校园选课系统负载升高,严重情况下甚至可能直接导致选课系统岩机,进而影响到全校学生的正常选课,也给校园信息化推广造成一定的阻碍。因此,亟需提供一种对大面积选课并发请求进行处理的方法,以确保校园信息化可以进一步的得到推广。
发明内容
本发明要解决的技术问题之一,在于提供一种学生时间优先选课高并发处理方法,通过该处理方法可实现对高并发的选课请求进行有效处理,从而可提高选课系统的稳定性,并提高学生端的使用体验。
本发明是这样实现技术问题之一的:一种学生时间优先选课高并发处理方法,所述方法包括:
步骤S1、学生端提交选课请求给队列集群,队列集群返回一个请求标识给提交请求的学生端;
步骤S2、队列集群根据设置的分组,让选课请求进入对应的分组队列;
步骤S3、消费集群从队列集群中拉取选课请求,对选课请求进行处理,并将处理后的选课结果写入到数据库中,同时更新至第一缓存;
步骤S4、学生端根据请求标识轮询异步到第一缓存中查询选课结果。
进一步地,在所述步骤S1中,所述学生端提交选课请求给队列集群具体为:
将选课列表分成供学生选择的课程列表和供学生查询的选中名单,并将课程列表放入到第二缓存中,将选中名单放入到第一缓存中;学生端从第二缓存中获取课程列表,并根据课程列表提交选课请求给队列集群。
进一步地,所述步骤S2具体具体为:
将队列集群根据年级属性进行分组;
在队列集群接收到选课请求后,提取该选课请求的请求时间和请求ID,并将请求时间和请求ID发送至第三缓存,第三缓存判断该请求时间是否在设置的选课时间之内,且如果否,则不允许选课请求进入分组队列,并返回提示消息给学生端;
如果是,则判断第三缓存中是否已存在该请求ID,且如果是,则不允许选课请求进入分组队列,并返回提示消息给学生端;如果否,则将该请求ID加入到第三缓存中,并根据年级属性让选课请求进入到对应的分组队列,同时,在选课请求被拉去处理后,将请求ID从第三缓存中移除。
进一步地,所述步骤S3具体为:
消费集群对应队列集群的每一个分组队列均设置有一个处理线程,每个处理线程均对应设置一第四缓存;
将同一个任务下的相同数据放入到第四缓存中;
消费集群通过多处理线程从队列集群的各分组队列中拉取选课请求进行处理,且在对选课请求进行处理时,先从第四缓存中查询同一个任务下的相同数据,再从数据库中查询同一个任务下的不同数据,并生成学生的选课结果;
将学生的选课结果分为本次选课结果和历史选课结果,并将本次选课结果和历史选课结果写入到数据库中,同时将本次选课结果更新至第一缓存的选中名单中,以供学生进行查询。
进一步地,在对选课请求进行处理时,还使用mysql的explain工具分析每个SQL语句的执行时间,并根据执行时间对SQL语句进行调优处理。
本发明要解决的技术问题之二,在于提供一种学生时间优先选课高并发处理系统,通过该处理系统可实现对高并发的选课请求进行有效处理,从而可提高选课系统的稳定性,并提高学生端的使用体验。
本发明是这样实现技术问题之二的:一种学生时间优先选课高并发处理系统,所述系统包括请求提交模块、请求分配模块、请求处理模块以及结果查询模块;
所述请求提交模块,用于学生端提交选课请求给队列集群,队列集群返回一个请求标识给提交请求的学生端;
所述请求分配模块,用于队列集群根据设置的分组,让选课请求进入对应的分组队列;
所述请求处理模块,用于消费集群从队列集群中拉取选课请求,对选课请求进行处理,并将处理后的选课结果写入到数据库中,同时更新至第一缓存;
所述结果查询模块,用于学生端根据请求标识轮询异步到第一缓存中查询选课结果。
进一步地,在所述请求提交模块中,所述学生端提交选课请求给队列集群具体为:
将选课列表分成供学生选择的课程列表和供学生查询的选中名单,并将课程列表放入到第二缓存中,将选中名单放入到第一缓存中;学生端从第二缓存中获取课程列表,并根据课程列表提交选课请求给队列集群。
进一步地,所述请求分配模块具体为:
将队列集群根据年级属性进行分组;
在队列集群接收到选课请求后,提取该选课请求的请求时间和请求ID,并将请求时间和请求ID发送至第三缓存,第三缓存判断该请求时间是否在设置的选课时间之内,且如果否,则不允许选课请求进入分组队列,并返回提示消息给学生端;
如果是,则判断第三缓存中是否已存在该请求ID,且如果是,则不允许选课请求进入分组队列,并返回提示消息给学生端;如果否,则将该请求ID加入到第三缓存中,并根据年级属性让选课请求进入到对应的分组队列,同时,在选课请求被拉去处理后,将请求ID从第三缓存中移除。
进一步地,所述请求处理模块具体为:
消费集群对应队列集群的每一个分组队列均设置有一个处理线程,每个处理线程均对应设置一第四缓存;
将同一个任务下的相同数据放入到第四缓存中;
消费集群通过多处理线程从队列集群的各分组队列中拉取选课请求进行处理,且在对选课请求进行处理时,先从第四缓存中查询同一个任务下的相同数据,再从数据库中查询同一个任务下的不同数据,并生成学生的选课结果;
将学生的选课结果分为本次选课结果和历史选课结果,并将本次选课结果和历史选课结果写入到数据库中,同时将本次选课结果更新至第一缓存的选中名单中,以供学生进行查询。
进一步地,在对选课请求进行处理时,还使用mysql的explain工具分析每个SQL语句的执行时间,并根据执行时间对SQL语句进行调优处理。
本发明具有如下优点:在本发明的技术方案中,通过对所有重复查询运用缓存技术、对队列集群进行分组、对处理逻辑进行SQL语句调优、使用消费集群处理选课请求以及采用异步请求查询选课结果,使得在具体使用时,可最大限度的保证学生集中选课时系统的稳定性、高吞吐、高负载、高并发,提高学生端的使用体验,为校园信息化建设做进一步的探索。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种学生时间优先选课高并发处理方法的执行流程图。
具体实施方式
请参阅图1所示,本发明一种学生时间优先选课高并发处理方法的较佳实施例,所述方法包括:
步骤S1、学生端提交选课请求给队列集群,队列集群返回一个请求标识给提交请求的学生端,以供学生端可以根据请求标识查询选课结果;
步骤S2、队列集群根据设置的分组,让选课请求进入对应的分组队列;
步骤S3、消费集群从队列集群中拉取选课请求,对选课请求进行处理,并将处理后的选课结果写入到数据库中,同时更新至第一缓存;
步骤S4、学生端根据请求标识轮询异步到第一缓存中查询选课结果。在具体实施时,当学生端接收到队列集群返回的请求标识(messageId)后,前端就自动启动一个定时器进行定时任务(例如,可以设置定时器的定时时间为10秒),在每次定时任务完成后,就根据请求标识到第一缓存中进行一次结果查询,且如果有查询到选课结果,则将选课结果显示到学生端以供学生查看,同时关闭定时器的定时任务;如果没有查询到选课结果,则继续启动定时器执行定时任务,直到查询到选课结果后才停止。通过以上这种查询方式,不仅可以提高学生的选课体验,而且可以减少请求连接数。
在所述步骤S1中,所述学生端提交选课请求给队列集群具体为:
将选课列表分成供学生选择的课程列表和供学生查询的选中名单,并将课程列表放入到第二缓存中,将选中名单放入到第一缓存中;学生端从第二缓存中获取课程列表,并根据课程列表提交选课请求给队列集群。
考虑到每个学生选课的课程都不一样,如果仅是简单的将选课列表放入到缓存中,则每个学生都需要重新查询一次数据库,根本起不到缓存作用。所以本发明中采用将选课列表分成课程列表和选中名单两部分,并分别放入到第一缓存和第二缓存中,这样,当学生端要进行选课时,就可以从第二缓存中获取课程列表进行选择,且在选课成功后,再去更新第一缓存中的选中名单,从而可以很好的实现选课列表的缓存作用,以尽可能的减少对数据库的访问操作。
所述步骤S2具体具体为:
将队列集群根据年级属性进行分组,即在队列中增加messageGroup特性,以提高选课请求入队列的效率;在具体实施时,可以在不同年级同时开始选课时,对activeMQ进行改进,通过增加messageGroup特性,使得不同年级可以进入到不同分组的队列进行消费,从而保证多个学校、多个年级同时开始选课时各分组队列之间不会有冲突,具体实现如下:
在消息进入队列时,根据年级增加JMSXGroupID属性:message.setStringProperty("JMSXGroupID",String.format(SELECT_GROUP_I D_PRE,gradeId));队列管理端在对消息进行分配时,通过JMSXGroupID属性让消息进入对应的队列:getMessageGroupOwners()。
在队列集群接收到选课请求后,提取该选课请求的请求时间和请求ID,并将请求时间和请求ID发送至第三缓存,第三缓存判断该请求时间是否在设置的选课时间之内,且如果否,则不允许选课请求进入分组队列,并返回提示消息给学生端;
如果是,则判断第三缓存中是否已存在该请求ID,且如果是,则不允许选课请求进入分组队列,并返回提示消息给学生端;如果否,则将该请求ID加入到第三缓存中,并根据年级属性让选课请求进入到对应的分组队列,同时,在选课请求被拉去处理后,将请求ID从第三缓存中移除。
在本发明中,通过将请求时间的验证放入到第三缓冲中进行,并提前至选课请求进入队列之前进行判断,可减少因选课时间不符合等无效请求进入到分组队列中;同时,将请求ID也放入到第三缓冲中进行验证,可有效避免同一个学生有两个或两个以上的选课请求都在队列中进行等待。本发明通过在选课请求进入到队列之前将无效请求先过滤掉,可大大简化后续的处理流程,提高对选课请求的处理效率。
所述步骤S3具体为:
消费集群对应队列集群的每一个分组队列均设置有一个处理线程,以提高对选课请求的响应速度,每个处理线程均对应设置一第四缓存;
将同一个任务下的相同数据放入到第四缓存中,例如,在执行某一个班级的选课任务时,由于这个班级中每个学生的学期、年级任务最大学科数量等数据都是相同的,因此,可以将这些相同的数据都放入到第四缓存中,以使得在具体进行选课请求处理时,可以先从第四缓存中查询相同数据,再到数据库中查询不同数据,以减少对数据库的访问操作;
消费集群通过多处理线程从队列集群的各分组队列中拉取选课请求进行处理,且在对选课请求进行处理时,先从第四缓存中查询同一个任务下的相同数据,再从数据库中查询同一个任务下的不同数据,并生成学生的选课结果;
将学生的选课结果分为本次选课结果和历史选课结果,并将本次选课结果和历史选课结果写入到数据库中,同时将本次选课结果更新至第一缓存的选中名单中,以供学生进行查询。由于在具体实施时,大部分学生都仅是关心本次选课结果,而很少会去查看历史选课结果,因此,通过将本次选课结果更新至第一缓存中,可进一步减少对数据库的访问操作。
在对选课请求进行处理时,还使用mysql的explain工具分析每个SQL语句的执行时间,并根据执行时间对SQL语句进行调优处理。具体实施时,在通过explain工具分析每个SQL语句的执行时间后,就可以从中找出查询较慢的SQL语句,此时,就可以通过修改SQL语句逻辑、增加索引等方式来达到降低SQL语句的执行时间的目的。
本发明一种学生时间优先选课高并发处理系统的较佳实施例,所述系统包括请求提交模块、请求分配模块、请求处理模块以及结果查询模块;
所述请求提交模块,用于学生端提交选课请求给队列集群,队列集群返回一个请求标识给提交请求的学生端,以供学生端可以根据请求标识查询选课结果;
所述请求分配模块,用于队列集群根据设置的分组,让选课请求进入对应的分组队列;
所述请求处理模块,用于消费集群从队列集群中拉取选课请求,对选课请求进行处理,并将处理后的选课结果写入到数据库中,同时更新至第一缓存;
所述结果查询模块,用于学生端根据请求标识轮询异步到第一缓存中查询选课结果。在具体实施时,当学生端接收到队列集群返回的请求标识(messageId)后,前端就自动启动一个定时器进行定时任务(例如,可以设置定时器的定时时间为10秒),在每次定时任务完成后,就根据请求标识到第一缓存中进行一次结果查询,且如果有查询到选课结果,则将选课结果显示到学生端以供学生查看,同时关闭定时器的定时任务;如果没有查询到选课结果,则继续启动定时器执行定时任务,直到查询到选课结果后才停止。通过以上这种查询方式,不仅可以提高学生的选课体验,而且可以减少请求连接数。
在所述请求提交模块中,所述学生端提交选课请求给队列集群具体为:
将选课列表分成供学生选择的课程列表和供学生查询的选中名单,并将课程列表放入到第二缓存中,将选中名单放入到第一缓存中;学生端从第二缓存中获取课程列表,并根据课程列表提交选课请求给队列集群。
考虑到每个学生选课的课程都不一样,如果仅是简单的将选课列表放入到缓存中,则每个学生都需要重新查询一次数据库,根本起不到缓存作用。所以本发明中采用将选课列表分成课程列表和选中名单两部分,并分别放入到第一缓存和第二缓存中,这样,当学生端要进行选课时,就可以从第二缓存中获取课程列表进行选择,且在选课成功后,再去更新第一缓存中的选中名单,从而可以很好的实现选课列表的缓存作用,以尽可能的减少对数据库的访问操作。
所述请求分配模块具体具体为:
将队列集群根据年级属性进行分组,即在队列中增加messageGroup特性,以提高选课请求入队列的效率;在具体实施时,可以在不同年级同时开始选课时,对activeMQ进行改进,通过增加messageGroup特性,使得不同年级可以进入到不同分组的队列进行消费,从而保证多个学校、多个年级同时开始选课时各分组队列之间不会有冲突,具体实现如下:
在消息进入队列时,根据年级增加JMSXGroupID属性:message.setStringProperty("JMSXGroupID",String.format(SELECT_GROUP_I D_PRE,gradeId));队列管理端在对消息进行分配时,通过JMSXGroupID属性让消息进入对应的队列:getMessageGroupOwners()。
在队列集群接收到选课请求后,提取该选课请求的请求时间和请求ID,并将请求时间和请求ID发送至第三缓存,第三缓存判断该请求时间是否在设置的选课时间之内,且如果否,则不允许选课请求进入分组队列,并返回提示消息给学生端;
如果是,则判断第三缓存中是否已存在该请求ID,且如果是,则不允许选课请求进入分组队列,并返回提示消息给学生端;如果否,则将该请求ID加入到第三缓存中,并根据年级属性让选课请求进入到对应的分组队列,同时,在选课请求被拉去处理后,将请求ID从第三缓存中移除。
在本发明中,通过将请求时间的验证放入到第三缓冲中进行,并提前至选课请求进入队列之前进行判断,可减少因选课时间不符合等无效请求进入到分组队列中;同时,将请求ID也放入到第三缓冲中进行验证,可有效避免同一个学生有两个或两个以上的选课请求都在队列中进行等待。本发明通过在选课请求进入到队列之前将无效请求先过滤掉,可大大简化后续的处理流程,提高对选课请求的处理效率。
所述请求处理模块具体为:
消费集群对应队列集群的每一个分组队列均设置有一个处理线程,以提高对选课请求的响应速度,每个处理线程均对应设置一第四缓存;
将同一个任务下的相同数据放入到第四缓存中,例如,在执行某一个班级的选课任务时,由于这个班级中每个学生的学期、年级任务最大学科数量等数据都是相同的,因此,可以将这些相同的数据都放入到第四缓存中,以使得在具体进行选课请求处理时,可以先从第四缓存中查询相同数据,再到数据库中查询不同数据,以减少对数据库的访问操作;
消费集群通过多处理线程从队列集群的各分组队列中拉取选课请求进行处理,且在对选课请求进行处理时,先从第四缓存中查询同一个任务下的相同数据,再从数据库中查询同一个任务下的不同数据,并生成学生的选课结果;
将学生的选课结果分为本次选课结果和历史选课结果,并将本次选课结果和历史选课结果写入到数据库中,同时将本次选课结果更新至第一缓存的选中名单中,以供学生进行查询。由于在具体实施时,大部分学生都仅是关心本次选课结果,而很少会去查看历史选课结果,因此,通过将本次选课结果更新至第一缓存中,可进一步减少对数据库的访问操作。
在对选课请求进行处理时,还使用mysql的explain工具分析每个SQL语句的执行时间,并根据执行时间对SQL语句进行调优处理。具体实施时,在通过explain工具分析每个SQL语句的执行时间后,就可以从中找出查询较慢的SQL语句,此时,就可以通过修改SQL语句逻辑、增加索引等方式来达到降低SQL语句的执行时间的目的。
综上所述,本发明具有如下优点:在本发明的技术方案中,通过对所有重复查询运用缓存技术、对队列集群进行分组、对处理逻辑进行SQL语句调优、使用消费集群处理选课请求以及采用异步请求查询选课结果,使得在具体使用时,可最大限度的保证学生集中选课时系统的稳定性、高吞吐、高负载、高并发,提高学生端的使用体验,为校园信息化建设做进一步的探索。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (10)
1.一种学生时间优先选课高并发处理方法,其特征在于:所述方法包括:
步骤S1、学生端提交选课请求给队列集群,队列集群返回一个请求标识给提交请求的学生端;
步骤S2、队列集群根据设置的分组,让选课请求进入对应的分组队列;
步骤S3、消费集群从队列集群中拉取选课请求,对选课请求进行处理,并将处理后的选课结果写入到数据库中,同时更新至第一缓存;
步骤S4、学生端根据请求标识轮询异步到第一缓存中查询选课结果。
2.根据权利要求1所述的一种学生时间优先选课高并发处理方法,其特征在于:在所述步骤S1中,所述学生端提交选课请求给队列集群具体为:
将选课列表分成供学生选择的课程列表和供学生查询的选中名单,并将课程列表放入到第二缓存中,将选中名单放入到第一缓存中;学生端从第二缓存中获取课程列表,并根据课程列表提交选课请求给队列集群。
3.根据权利要求1所述的一种学生时间优先选课高并发处理方法,其特征在于:所述步骤S2具体具体为:
将队列集群根据年级属性进行分组;
在队列集群接收到选课请求后,提取该选课请求的请求时间和请求ID,并将请求时间和请求ID发送至第三缓存,第三缓存判断该请求时间是否在设置的选课时间之内,且如果否,则不允许选课请求进入分组队列,并返回提示消息给学生端;
如果是,则判断第三缓存中是否已存在该请求ID,且如果是,则不允许选课请求进入分组队列,并返回提示消息给学生端;如果否,则将该请求ID加入到第三缓存中,并根据年级属性让选课请求进入到对应的分组队列,同时,在选课请求被拉去处理后,将请求ID从第三缓存中移除。
4.根据权利要求1所述的一种学生时间优先选课高并发处理方法,其特征在于:所述步骤S3具体为:
消费集群对应队列集群的每一个分组队列均设置有一个处理线程,每个处理线程均对应设置一第四缓存;
将同一个任务下的相同数据放入到第四缓存中;
消费集群通过多处理线程从队列集群的各分组队列中拉取选课请求进行处理,且在对选课请求进行处理时,先从第四缓存中查询同一个任务下的相同数据,再从数据库中查询同一个任务下的不同数据,并生成学生的选课结果;
将学生的选课结果分为本次选课结果和历史选课结果,并将本次选课结果和历史选课结果写入到数据库中,同时将本次选课结果更新至第一缓存的选中名单中,以供学生进行查询。
5.根据权利要求4所述的一种学生时间优先选课高并发处理方法,其特征在于:在对选课请求进行处理时,还使用mysql的explain工具分析每个SQL语句的执行时间,并根据执行时间对SQL语句进行调优处理。
6.一种学生时间优先选课高并发处理系统,其特征在于:所述系统包括请求提交模块、请求分配模块、请求处理模块以及结果查询模块;
所述请求提交模块,用于学生端提交选课请求给队列集群,队列集群返回一个请求标识给提交请求的学生端;
所述请求分配模块,用于队列集群根据设置的分组,让选课请求进入对应的分组队列;
所述请求处理模块,用于消费集群从队列集群中拉取选课请求,对选课请求进行处理,并将处理后的选课结果写入到数据库中,同时更新至第一缓存;
所述结果查询模块,用于学生端根据请求标识轮询异步到第一缓存中查询选课结果。
7.根据权利要求6所述的一种学生时间优先选课高并发处理系统,其特征在于:在所述请求提交模块中,所述学生端提交选课请求给队列集群具体为:
将选课列表分成供学生选择的课程列表和供学生查询的选中名单,并将课程列表放入到第二缓存中,将选中名单放入到第一缓存中;学生端从第二缓存中获取课程列表,并根据课程列表提交选课请求给队列集群。
8.根据权利要求6所述的一种学生时间优先选课高并发处理系统,其特征在于:所述请求分配模块具体为:
将队列集群根据年级属性进行分组;
在队列集群接收到选课请求后,提取该选课请求的请求时间和请求ID,并将请求时间和请求ID发送至第三缓存,第三缓存判断该请求时间是否在设置的选课时间之内,且如果否,则不允许选课请求进入分组队列,并返回提示消息给学生端;
如果是,则判断第三缓存中是否已存在该请求ID,且如果是,则不允许选课请求进入分组队列,并返回提示消息给学生端;如果否,则将该请求ID加入到第三缓存中,并根据年级属性让选课请求进入到对应的分组队列,同时,在选课请求被拉去处理后,将请求ID从第三缓存中移除。
9.根据权利要求6所述的一种学生时间优先选课高并发处理系统,其特征在于:所述请求处理模块具体为:
消费集群对应队列集群的每一个分组队列均设置有一个处理线程,每个处理线程均对应设置一第四缓存;
将同一个任务下的相同数据放入到第四缓存中;
消费集群通过多处理线程从队列集群的各分组队列中拉取选课请求进行处理,且在对选课请求进行处理时,先从第四缓存中查询同一个任务下的相同数据,再从数据库中查询同一个任务下的不同数据,并生成学生的选课结果;
将学生的选课结果分为本次选课结果和历史选课结果,并将本次选课结果和历史选课结果写入到数据库中,同时将本次选课结果更新至第一缓存的选中名单中,以供学生进行查询。
10.根据权利要求9所述的一种学生时间优先选课高并发处理系统,其特征在于:在对选课请求进行处理时,还使用mysql的explain工具分析每个SQL语句的执行时间,并根据执行时间对SQL语句进行调优处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910343246.1A CN110223203A (zh) | 2019-04-26 | 2019-04-26 | 一种学生时间优先选课高并发处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910343246.1A CN110223203A (zh) | 2019-04-26 | 2019-04-26 | 一种学生时间优先选课高并发处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110223203A true CN110223203A (zh) | 2019-09-10 |
Family
ID=67820038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910343246.1A Pending CN110223203A (zh) | 2019-04-26 | 2019-04-26 | 一种学生时间优先选课高并发处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110223203A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062681A (zh) * | 2019-11-19 | 2020-04-24 | 湖南强智科技发展有限公司 | 选课巡检方法、装置、服务器及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140057239A1 (en) * | 2012-08-24 | 2014-02-27 | Discovery Communications, Llc. | Methods and apparatuses for facilitating online knowledge transfers |
CN105205175A (zh) * | 2015-10-15 | 2015-12-30 | 北京农信互联科技有限公司 | 分布式数据库集群的数据操作方法及系统 |
CN105450618A (zh) * | 2014-09-26 | 2016-03-30 | Tcl集团股份有限公司 | 一种api服务器处理大数据的运算方法及其系统 |
CN106648599A (zh) * | 2016-10-12 | 2017-05-10 | 天闻数媒科技(湖南)有限公司 | 一种在线课程报名的处理方法及系统 |
CN108564350A (zh) * | 2018-05-29 | 2018-09-21 | 黑龙江省经济管理干部学院 | 一种利用app学生学习的高效教与学系统 |
CN109255738A (zh) * | 2018-09-12 | 2019-01-22 | 连尚(新昌)网络科技有限公司 | 一种用于管理和查询辅导课程相关信息的方法与设备 |
-
2019
- 2019-04-26 CN CN201910343246.1A patent/CN110223203A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140057239A1 (en) * | 2012-08-24 | 2014-02-27 | Discovery Communications, Llc. | Methods and apparatuses for facilitating online knowledge transfers |
CN105450618A (zh) * | 2014-09-26 | 2016-03-30 | Tcl集团股份有限公司 | 一种api服务器处理大数据的运算方法及其系统 |
CN105205175A (zh) * | 2015-10-15 | 2015-12-30 | 北京农信互联科技有限公司 | 分布式数据库集群的数据操作方法及系统 |
CN106648599A (zh) * | 2016-10-12 | 2017-05-10 | 天闻数媒科技(湖南)有限公司 | 一种在线课程报名的处理方法及系统 |
CN108564350A (zh) * | 2018-05-29 | 2018-09-21 | 黑龙江省经济管理干部学院 | 一种利用app学生学习的高效教与学系统 |
CN109255738A (zh) * | 2018-09-12 | 2019-01-22 | 连尚(新昌)网络科技有限公司 | 一种用于管理和查询辅导课程相关信息的方法与设备 |
Non-Patent Citations (1)
Title |
---|
张戈: "网络选课系统性能优化策略研究", 《网络安全技术与应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062681A (zh) * | 2019-11-19 | 2020-04-24 | 湖南强智科技发展有限公司 | 选课巡检方法、装置、服务器及存储介质 |
CN111062681B (zh) * | 2019-11-19 | 2023-10-13 | 湖南强智科技发展有限公司 | 选课巡检方法、装置、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101652A (zh) | 一种标签创建和管理系统 | |
CN104090901B (zh) | 一种对数据进行处理的方法、装置及服务器 | |
CN103310012A (zh) | 一种分布式网络爬虫系统 | |
CN110457689A (zh) | 语义处理方法及相关装置 | |
CN106528169B (zh) | 一种基于AnGo动态演化模型的Web系统开发可复用方法 | |
Kephart et al. | A symbiotic cognitive computing perspective on autonomic computing | |
CN106991112A (zh) | 信息查询方法及装置 | |
CN109637238A (zh) | 一种练习题的生成方法、装置、设备和存储介质 | |
CN108829651A (zh) | 一种公文处理的方法、装置、终端设备及存储介质 | |
CN109802951A (zh) | 一种报文转发方法、设备及存储设备、程序产品 | |
CN109584127B (zh) | 一种用于实验教学的教学资源管理方法及系统 | |
CN110223203A (zh) | 一种学生时间优先选课高并发处理方法及系统 | |
EP3905067A1 (en) | Adaptive network for notam prioritization | |
US11048887B1 (en) | Cross-language models based on transfer learning | |
CN109919343A (zh) | 一种实训教学管理方法及管理系统 | |
CN110889069A (zh) | 一种基于web在线学习的资源访问平台 | |
US11741161B2 (en) | System and method for generating a refined query | |
CN109086426A (zh) | 数据查询方法、装置、计算机设备及可读存储介质 | |
CN110321428A (zh) | 结构维护映射器 | |
US10841251B1 (en) | Multi-domain chatbot | |
JP2022044842A (ja) | 自動車教習所の教習のインテリジェントスケジューリング方法、装置、電子デバイス、記憶媒体、及びプログラム | |
AU2020385369A1 (en) | Contact center call volume prediction | |
Xiao et al. | Lightweight natural language driven intent translation mechanism for intent based networking | |
EP4160512A1 (en) | Optimizing questions to retain engagement | |
EP4220433A1 (en) | Graphical user interface for conversational task completion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190910 |
|
RJ01 | Rejection of invention patent application after publication |