博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
作业自动提示功能设计思路
阅读量:6516 次
发布时间:2019-06-24

本文共 1473 字,大约阅读时间需要 4 分钟。

1、利用现在FLEX项目中的心跳包机制,使用SOCKET心跳包技术获取最新的作业情况。

2、在现在FLEX项目中有一个:

核心代码:

 

这样我们可以利用这个通道,获取相应的信息。

 

具体修改步骤如下:

1、准备工作

创建一张表,名称:t_bag_sendmessage

字段包括:

id int

receiver_id char(36) --接收的人员

create_time datetime --发送的时间

type_id     int --信息的分类,比如是教师发作业:1 是学生提交作业:2

message_body varchar(4000) --消息体,内容,是一个JSON串

have_receive int --是不是用户已收到,1表示接到,0表示是未收到,默认是0

之所以有这张表,是用来将提示信息持久化使用的,下面将重点说明。

 

2、我们在JAVA项目中,接收到FLEX端通过心跳传上来的心跳包,解析JSON串,得到是哪个身份(教师,学生),哪个人员(用户ID),哪种设备(TEACH平台还是PAD),

以前我们是直接把这个人员ID和PAD设备ID保存到MEMCACHED中,并设置了过期时间为5秒(约值,不准确),现在我们除了做这件事以后,扩展一下,再做另一部分工作:

HomeWork+Teacher+用户ID (表示是作业,并且接收者是教师)或者

HomeWork+Student+用户ID(表示是作业,并且接收者是学生)

 

为KEY值,到MEMCACHED中去查找是否有需要提示的字符串(也是一个JSON串,可以包括各种信息,具体形式请开发人员自行扩展) 如果没有,返回OK,如果有,返回此字符串,并在MEMCACHED删除此键值,防止下次再次获取到重复的提示信息。

3、教师留作业

查询他所教授的任课计划,得到任课班级,获取到所有教授的学生,然后循环向上面提到的数据表中插入数据,并组成JSON中,向MEMCACHED中插入数据,表示这个人,需要提示这个信息。

插入的键值:

HomeWork+Teacher+用户ID (表示是作业,并且接收者是教师)或者

HomeWork+Student+用户ID(表示是作业,并且接收者是学生)

 

4、学生提交作业

JAVA端负责保存时,也要查询到这科作业需要向哪位教师提示,获取到教师的ID,向上面提到的数据表中插入数据,并向MEMCACHED中插入一条以HomeWork+用户ID为KEY值的字符串,提示教师,哪个学生上交了作业。

 

5、后期扩展

现在我们准备的这张数据表,完全 没有使用上,就是说现在是没用的,为什么我们要创建这样一张表呢?主要是防止如果MEMCACHED服务器重启了,再进来时,就没有了消息,而用户还没有消费到这个消息 的时候,会有消息 丢失,我们把数据保存到表中,如果一旦出现了这类问题,我们可以设计在TOMCAT启动时,使用一个SERVLET将数据表中没有被消费掉的记录再次放到MEMCACHED中。

 

6、为什么我们不使用ACTIVEMQ?而是重复创建轮子呢?

原因:1、我们现在系统中有心跳包的机制,而BLAZEDS的推机制从本质上讲也使用了轮询技术,但因没有使用NIO,所以并发量限制在100,不及商业软件LCDS的并发量1000,也就是说我们现在手里就有一把手术刀,没必要再为了去切一个东西再去买一把卷笔刀。贴近系统底层的SOCKET协议的效率是最高的,肯定要优于封装过的其它协议。

2、处理ACTIVEMQ也需要学习成本,项目工期紧,能解决问题就是好方法。

 

 

 

转载地址:http://slofo.baihongyu.com/

你可能感兴趣的文章
云服务器 ECS 使用OpenAPI管理ECS:使用OpenAPI弹性创建ECS实例
查看>>
象云2.0产品发布暨国产操作系统首次入驻公有云
查看>>
一个完美DCIM应该具备的功能与价值
查看>>
《SEO的艺术(原书第2版)》——1.5 人们如何搜索
查看>>
经验贴 | 电梯监控的布线技巧
查看>>
唐山联通与丰南区政府签署“智慧城市”战略合作协议
查看>>
研究显示:广告拦截应用正在破坏互联网
查看>>
优云·小课堂 第八期:运维自动化的魅力
查看>>
稳定+性能+价格,阿里云发力ECS企业级产品
查看>>
写个软件来防止服务器网站CPU百分百
查看>>
智能城市里,“公共电话亭”的存在意味着什么?
查看>>
JVM分代垃圾回收策略的基础概念
查看>>
《交互式程序设计 第2版》一3.5 捕获简单用户交互行为
查看>>
安装操作系统需要注意的事项
查看>>
5G技术的5大猜想
查看>>
MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务
查看>>
别随便安装 Pokemon GO被曝藏恶意后门
查看>>
BBC即将推出Britflix流媒体服务:欲成为英国版Netflix
查看>>
让数据会思考会说话,为出海企业提供多样化数据智能解决方案
查看>>
我眼中的自动化测试框架设计要点
查看>>