教学助学项目任务系统设计

《千比特教学助学的项目》 项目收集到一个需求,而很非常重要。即为任务系统。这个任务系统不是系统的那个任务。而且来自自上而下的命令任务。

场景一,来自语文老师要求,要求指定班极学生,每天都要读一篇读文打卡在群里。
场景二,来自学校校长要求,要求全校师生都参加,写一篇关于对学校印象的文章内容。
场景三,来自教育局下文要求,要求全校学生掌握新型肺炎的防控要求。

针对此类任务,可以拆分为几个维度的内容:

  1. 有时效(每天要求,每次要求,短期要求)
  2. 有范围(单个班级,多个班级,全校)
  3. 有统计,可导出,可生成图表(需要统计数据)

字段分析:

字段名 类型 是否必填 描述
openid string(80) 下命令的人
name string(128) 任务标题
content text 显示给指定人看的内容
type tinyint(2) 类型,0 为每天提醒,1 单次有效,3 次有效
group_id string(255) 标签内容,0 为全部粉丝,其它为指定标签

问题来了

  • 每次统计的任务都不一样,收集的信息也不一样,如何处理?
    根据时效,接收范围二个维度来分层次。将收集的信息专门做成 json,或采用 NoSql 数据库

  • 统计报告的明细如何处理?
    采用 NoSql 可以图表展示

  • 如何确认接收任务的范围人?
    充分利用粉丝标签,将粉丝按学校,园区,班级来进行划分。发送消息时,仅需调用指定标签即可。

  • 这么大量体的发送,如何处理?
    使用消息队列,分次排队处理。