阿里云双十一优惠活动,点击链接进行购买: 一年仅需89元即可以购买服务器~。我个人服务器为2核4G配置,也更加推荐购买 2核4G三年799元 配置的服务器。
你可以跟着我的笔记 当我有一台服务器时,我做了什么 来开始维护服务器并搭建应用,将引导你使用 docker 和 k8s 搭建一个自己的服务器开发集群。

date: 2020-07-16 16:30


# 在线教育中技术与业务疑难问题之考试系统中的时间控制

直接说需求吧

# 服务端实现

async function getTimeLeft (sheetId, sectionId) {
  // 如果求学生做整套试卷的剩余时间
  if (!sectionId) {
    const sheet = await Sheet.findById(sheetId)
    // 计算距离开始考试时间过了多久
    return now - sheet.startTime
  }

  const key = `Sheet:${sheetId}:Section:${sectionId}:TimeLeft`
  return redis.get(key)
}

async function setTimeLeft (sheetId, sectionId, seconds) {
  const key = `Sheet:${sheetId}:Section:${sectionId}:TimeLeft`
  if (!seconds) {
    const paper = await Paper.findBySheetId(sheetId)
    const section = await Section.findById(sectionId)
    seconds = section.totalTime
  }
  await redis.set(key, seconds, 'EX', '1d')
}
Last Updated: 7/17/2020, 10:48:53 AM