gpt4 book ai didi

java - 如果在线考试过程中发生停电,我们如何更新用户再次登录门户时的剩余时间?

转载 作者:搜寻专家 更新时间:2023-10-31 20:14:27 25 4
gpt4 key购买 nike

我正在做一个在线考试项目只是为了获取知识。可能会出现停电的情况,当候选人再次登录时,必须给出停电期间浪费的时间。但是在我的 javascript 代码中,考试在与服务器时间相对应的恰好 2 小时后结束(此处使用 AJAX)。时间结束后,学生将被重定向到主页。我想到了一个解决方案,但我没有找到实现它的开始。

As the session is maintained, so I can maintain the time he used from 2 hours and can be stored in database. when he relogin then that particular row which corresponds to him can be checked and the time can be updated.

但是我无法实现它。请告诉我是否有其他解决方案或我思考的方向是对还是错。

考试时钟从 2 小时开始恢复。它不会从发生电源故障时滴答作响的时间恢复。至少在这种情况下,发生电源故障或候选人再次登录是一回事。而且我不要求任何代码来解决这个问题。我只是想要一个提示或一个我能想到的方向。我只想知道它背后的概念是什么。

最佳答案

稍微形式化问题:

  • 用户登录并在 t0 开始考试。他们的考试在 120 结束。
  • 在考试结束前 (tx) 的某个时刻(考试开始后 x 分钟)停电,被测者必须继续考试。
  • tx 之后的某个时刻,ty 系统恢复在线。
  • ty 之后的某个时刻,用户再次登录,称之为 tz。正如您所指出的,这等于 ty
  • 他们有权在 120 - x 分钟内完成考试。现在考试结束的时间点是 tz + (120 - x)

可能的解决方案:

最初想到的是一种非常面向 session 的方法,但这可能是要走的路:

  • 实现一个周期为 p 的系统时钟(想想“心跳”)。对于系统启动的每个时间间隔 p,递增一个全局计数器。
  • 将 t0 记录为每次检查的全局计数器。
  • 在另一行中,更新考试的耗时。这是 t0 的当前值。在您的代码中,您可能具有保存正在进行的工作的功能,并在那里更新耗时。还更新每个页面/部分加载的耗时。请注意,如果在上次耗时更新/正在进行的保存之间丢失了一些工作,他们将收到“返回”的时间,因为他们的最后一次经过的更新从未被存储过。
  • 间隔 p 将是一个策略决定。理论上,根据失败的时间,某人可以获得额外的 p 来完成他们的考试。如果 p 是 1 秒,那没什么大不了的。如果是 5 分钟,那就更重要了。当然,对于不同的 p 值会有性能折衷。此外,由于我们在这里不处理实时系统,因此 p 可能存在一些偏差。
  • 一切都使用交易。当系统恢复时(在全局时钟再次开始计时之前),任何中断的交易都需要回滚。

关于java - 如果在线考试过程中发生停电,我们如何更新用户再次登录门户时的剩余时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11821753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com