考试软件流程

modelTp== 2, 搜索题目

modelTp==3, 组卷

modelTp== 4 显示5个模块, 每个模块几道题

modelTp== 1, 点击树节点,显示html格式的题目

点击计时器结束按钮,

弹出UploadDialog对话框,框有个函数InstantSaveAsync,字面意思:立即上传

{

1. PrepareUpload, 返回CommonExam, 该考试里面最重要成员List<CommonStudent> students, 该学生重要成员为:

strokesFile, scoreFile, 笔迹文件和得分文件

每次上传会创建一个目录,yyyyddMMHHmmss

然后遍历每个学生, 对每个学生:

a 产生笔迹文件,stroke_guid.dat, 笔迹序列化到文件中

b 产生得分文件,score_guid.dat, 题目和分数信息序列化到文件中

c 保存该学生的考试信息,POST 到api/student-examines, 考试状态为PARTIAL

最后返回一个CommonExam,包含上传到云端的一些信息, 包括笔迹前缀, 得分前缀, 上传文件的本地路径等等

2. UploadToAliServer

a 遍历每个学生,把笔迹文件和得分文件上传到云端

b 把这次考试对象上传到服务器, api/examines/update_status, 该考试的状态为EVALUATE

注意: EVALUATE和PARTIAL分别是对应考试和学生的, 不要搞混了,考试也有PARTIAL状态,从识别服务到数据库改考试为PARTIAL

}

============================================================================

服务器端,

在session的Initialize函数中创建识别对象

创建连接工厂ConnectionFactory, 这是连接到RabbitMQ用的。

获取到连接对象之后,再创建一个RecogMessageReceiver对象。在对象的构造函数中,

先从连接对象获取到一个channel,用这个channel声明一个队列,QueueDeclare

然后构造一个EventingBasicConsumer消费者对象,为该对象添加一个接收消息处理器OnReceiver

相关数据结构, 

api/examines/update_status, 收到Examine对象,从服务器中找出该考试,然后更新考试的状态为EVALUATE

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章