Skip to content

minchieh2014/TaskTalk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TASKTALK(TT)

简介

会说话的任务(以下简称TT)

  • 解决问题

    • 日常工作中,worker未完成当前task时, 又被安排其他多个task时, worker阶段性的容易忘记某个task(用程序员设计思维讲: 如果没有高并发异步模型, 要么卡死调度线程, 要么消息在网卡等IO上丢失, 需要设计mq做消息队列缓存)
    • 作为master, 进行需要花费不少时间催促和提醒worker完成master所关心的task
    • 当worker和master存在n:m这种复制情况下, task没有可视化的展现worker是否饱和,让master很难进行进度预测
    • 当一个复杂度较高(需要多个worker串联执行才能完成)的task, master需要经常询问不同的worker才能知道现在卡在哪个worker上了, 周期性的需要触发该事件, 浪费master的时间和精力
    • 日常的task处理实际是用户绩效的最直接表象, 那么这些数据其实具备一定的KPI考核的原始数据, TT可以可视化的导出用户累计完成task数量, 完成task的平均时间等
  • 运行环境

    • 局域网
    • 树莓派(或服务器)
      • 树莓派这种一体机 维护简单, 甲方自己的操作系统环境多样
      • 树莓派省电, 省成本(甲乙方)

image-20191116160831729

名词解释

  • master ------------和用户角色无关, 对于一个任务的某个节点的相对称呼, 节点的上游
  • worker------------和用户角色无关, 对于一个任务的某个节点的相对称呼, 节点的下游
  • task-------任务(工作), 可以捆绑worker
  • task tree-----任务(工作)树, 多个task串联

基本功能

  • 用户登录
  • task创建
  • task捆绑worker
  • task捆绑的worker, 划分下级task
  • 平级task的优先排序, 最终能在task tree的根节点能看到优先卡住的第一worker
  • worker/master IM, 可以智能引用task, 类似阿里旺旺聊天时, 自动引用商品的url一样

高级功能

  • 基于webrtc的1对1音视频聊天
  • 基于webrtc的远程协助
  • IM聊天+富文本+文件传输(P2P)

使用环境

  • 百人级公司
  • 局域网互通公司(不用考虑服务器外网, 穿墙等问题)
  • 只供给PC用户(mac, windows, linux)

开发语言

后台go, 前端js+html

框架

  • 前端
    • electron
    • vue
    • npm(即node插件)
  • 后端
    • 未定

image-20191117153141087

通讯协议

grpc(http2+protobuf)

数据库

该数据库只会给go开发的单个服务使用, 而且要考虑在树莓派这种小机型中运行, 需要符合以下特征

  • 性能单链路性能足够
  • 小巧(磁盘空间有限, cpu和内存有限)

暂定: mysql

数据库表设计

特征:

  • 用户聊天记录不保存, 由客户端自己存储(即: 换个电脑, 丢失)
  • 主要存储用户信息和task信息
  • 为了存储和搜索的高效性, task表按年划分(只保留2年的数据, 今年+去年)
  • 用户登录登出, task变更等操作, 需要记录操作者和操作时间
  • 数据均采用0时区

功能需求

  • 1.登录+注册

    • 描述

      学习无人超市的概念, 用户自动完成, 货款单出现问题, 事后通过录像查询并准确追踪

      反应到我们这边就是无秘密登录

       graph TD
       无密码登录-->|login|a{是否第一次登陆}
       a-->|是|b(填写工号+姓名)
       a-->|否|b1(本地缓存中读取)
       b-->登录
       b1-->登录
       登录-->|login|服务
       服务-->|check|c{账号检索}
       c-->|不存在|新建账号+登录成功+欢迎
       c-->|存在|d{校验登录ip}
       d-->|相同|登录成功
       d-->|不同|告警
       告警-->|提醒:登录ip不同</br>如果误登录,5秒倒计时内退出|e{误登}
       e-->|点击是|客户端退出,不产生记录
       e-->|点击否|客户端正常使用,显示上次登录的操作信息,并记录登录信息
    
    Loading