任务计时系统技术设计说明文档
1.任务表
task_time
字段 | 说明 | 示例 |
---|---|---|
id | 主键 | 1 |
name | 任务名称 | 写年终总结 |
describe | 任务描述 | 无 |
level | 任务等级 | 1:普通 2:严重 3:紧急 |
type | 任务类型 | 1:正计时 2:倒计时 |
state | 任务状态 | 1:进行中 2:暂停中 3:已恢复 4:已停止 |
start_time | 开始时间 | 任务开始时间 |
pause_time | 暂停时间 | 1576652089 |
resumed_time | 恢复时间 | 1576652089 |
total_time | 至恢复时间的总计时,单位毫秒 | 8000000 |
countdown_time | 已运行时间,用于暂停恢复后,进行统计。 | |
related_user | 相关用户 | user1 ID,user2 ID |
note | 备注 | 无 |
2.登录时获取所有任务已耗用时间
3.暂停
4.使用技术
- vuex
- vue.store
- vue.localStorage
5.算法说明
服务器时间:t0
任务开始时间:t1
任务恢复时间:t3
用户登录时长:t4
任务运行时长:t5
- 任务截至请求时的运行时间
1、任务没有中途暂停过:t0-t1
2、任务中途暂停过:(t0-t3)+t5
- 计时功能
通过js的setInterval方法实现计时,每秒钟t4++;
- 服务器时钟同步和刷新
每60秒进行服务器时间同步,每次同步后,t4=0;
5.运行流程
- 用户登录成功后,请求任务列表接口,得到任务数据。
- 通过localStorage缓存在客户端。
- 通过vue.store实现计时功能。